10、XML约束
来源:互联网 发布:java 换行符替换 编辑:程序博客网 时间:2024/06/12 09:38
XML约束
引入
XML语法: 规范的xml文件的基本编写规则。(由w3c组织制定的)XML约束: 规范XML文件数据内容格式的编写规则。(由开发者自行定义)
XML约束技术
DTD约束:语法相对简单,功能也相对简单。学习成本也低。
Schema约束:语法相对复杂,功能也相对强大。学习成本相对高!!!(名称空间)
DTD约束
导入dtd方式:
内部导入
<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>]>
外部导入
本地文件系统: <!DOCTYPE note SYSTEM "note.dtd">公共的外部导入:<!DOCTYPE 根元素 PUBLIC "http://gz.itcast.cn/itcast.dtd">
DTD语法
约束标签
<!ELEMENT 元素名称 类别> 或 <!ELEMENT 元素名称 (元素内容)>类别: 空标签: EMPTY。 表示元素一定是空元素。 普通字符串: (#PCDATA)。表示元素的内容一定是普通字符串(不能含有子标签)。 任何内容: ANY。表示元素的内容可以是任意内容(包括子标签) (元素内容): 顺序问题: <!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>: 按顺序出现子标签 次数问题: 标签 : 必须且只出现1次。 标签+ : 至少出现1次 标签* : 0或n次。 标签? : 0 或1次。约束属性 <!ATTLIST 元素名称 属性名称 属性类型 默认值> 默认值: #REQUIRED 属性值是必需的 #IMPLIED 属性不是必需的 #FIXED value 属性不是必须的,但属性值是固定的 属性类型:控制属性值的 CDATA :表示普通字符串 (en1|en2|..): 表示一定是任选其中的一个值 ID:表示在一个xml文档中该属性值必须唯一。值不能以数字开头
案例:
<?xml version="1.0"?><!DOCTYPE note SYSTEM "note.dtd"><note> <to id="a1"></to> <to id="a2"></to> <to id="a3"></to> <heading>Reminder</heading> <heading>Reminder</heading> <heading>Reminder</heading> <body>Don't forget me this weekend</body> <body>Don't forget me this weekend</body> <body>Don't forget me this weekend</body></note>
dtd:
<!ELEMENT note (from?,to+,heading*,body+)> <!ELEMENT to EMPTY> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> <!ATTLIST to id ID #REQUIRED>
Schema约束
名称空间:告诉xml文档的哪个元素被哪个schema文档约束。 在一个xml文档中,不同的标签可以受到不同的schema文档的约束。
1)一个名称空间受到schema文档约束的情况 2)多个名称空间受到多个schema文档约束的情况 3)默认名称空间的情况 4)没有名称空间的情况
案例
<?xml version="1.0" encoding="UTF-8"?><itcast:书架 xmlns:itcast="http://www.itcast.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.itcast.cn book.xsd"> <itcast:书> <itcast:书名>JavaScript网页开发</itcast:书名> <itcast:作者>张孝祥</itcast:作者> <itcast:售价>28</itcast:售价> </itcast:书></itcast:书架>
.xsd
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.itcast.cn" elementFormDefault="qualified"> <xs:element name='书架' > <xs:complexType> <xs:sequence maxOccurs='unbounded' > <xs:element name='书' > <xs:complexType> <xs:sequence> <xs:element name='书名' type='xs:string' /> <xs:element name='作者' type='xs:string' /> <xs:element name='售价' type='xs:integer' /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element></xs:schema>
0 0
- 10、XML约束
- XML约束-Schema约束
- XML约束--DTD约束
- XML约束--schema约束
- XML约束_schema约束
- XML约束
- XML约束
- XML约束
- xml约束
- xml约束
- xml约束
- xml约束
- xml约束
- xml约束
- XML约束
- xml约束
- XML约束
- XML约束
- pyinstaller打包数据
- linux postgresql 安装配置详解
- Vitamio与FFmpeg、LGPL、GPL的关系
- Shell 脚本知识回顾 (二) —— Shell变量
- runloop 与autorelase对象、Autorelease Pool 在什么时候释放
- 10、XML约束
- c++作业4
- C++常数/字面量
- mysql的数据库的备份与恢复
- c++语言函数
- poj 1159 && hdu 1513 Palindrome(LCS)
- 1.8.程序的内存分配
- 一篇很不错的介绍jquery的上下文的文章
- 一个软件初学者的唠叨