XML之DTD Schema总结
2012-02-26 22:14
302 查看
首先强烈推荐使用XMLSpy这款专业工具:下载地址:http://download.csdn.net/detail/jiangtongcn/4091853DTD总结DTD文档结构内部DTD文档语法结构外部DTD文档语法结构内外部DTD文档语法结构【当外部DTD不满足要求的时候可以考虑添加内部DTD】DTD元素空元素定义 建议<元素名称/>#PCDATA限定元素包含文档内容纯元素符号的用法(?、+、*)DTD属性类型CDATA表示属性值是文本类型ID表示属性值是唯一的IDREF/IDREFS表示外键的引用,在属性值里面出现的值一定是之前定义好的ID类型的值。Enumerated枚举类型,并非使用这个单词而是自定的枚举值如男或女属性特点#REQUIRED表示属性值是必须的。#IMPLIED表示属性可以省略#FIEXD表示属性在出现的时候有个固定值Default表示缺省值,并非使用这个单词,而是预定好的一些值。DTD实体实体是在DTD里面去定义,在XML文件里使用。好比在DTD里面定义了一个变量,在XML里面使用这个变量。Schema总结Schema文档结构Schema文档是一个XML文档,因此是需要声明和根元素的。Schema常用元素类型element元素元素名称、出现次数、group元素将几个元素捆绑到一起以组的形势出现attribute元素定义属性名称、默认值attributeGroup元素将几个属性捆绑出现simpleType元素要对数据类型进行扩充的时候要使用自定简单数据类型restriction定义一个约束[常用]list列表,可以定义数据类型complexType元素限制包含元素的元素和元素的属性sequenceXML文档的子元素按照什么顺序出现choice表示定义的一组当中可以选择哪一个。-----------------------------------------[b]-------------------DTD使用示范-------[b]--------------------------------[/b][/b]DTD元素示范Movie.dtd
<?xml version="1.0" encoding="GB2312"?> <!ELEMENT CCTV-6 (电影+)> <!ELEMENT 电影 (名称, 主演+, 类型?, 片长)> <!ELEMENT 名称 (#PCDATA)> <!ELEMENT 主演 (#PCDATA)> <!ELEMENT 类型 (#PCDATA)> <!ELEMENT 片长 (#PCDATA)>Movie.xml
<?xml version="1.0" encoding="gb2312"?> <!--为下面的xml编写一个外部的DTD文档 类型:最多出现1次 主演:至少是一个人 --> <!DOCTYPE CCTV-6 SYSTEM "验证元素测试.dtd"> <CCTV-6> <电影> <名称>霍元甲</名称> <主演>李连杰</主演> <类型>动作</类型> <片长>1小时35分</片长> </电影> <电影> <名称>宝贝计划</名称> <主演>成龙</主演> <主演>古天乐</主演> <片长>1小时40分</片长> </电影> </CCTV-6>------------------------------------------------------------------------------------DTD属性示范Family.dtd
<!ELEMENT 家庭 (人+, 家电*)><!ELEMENT 人 EMPTY><!ELEMENT 家电 EMPTY><!ATTLIST 人名字 CDATA #REQUIRED年龄 CDATA #REQUIRED性别 (男 | 女) "女"住址 CDATA #FIXED "北京"爱好 CDATA #IMPLIED><!ATTLIST 家电名称 CDATA #REQUIRED数量 CDATA #REQUIRED>Family.xml
<?xml version="1.0"?><!DOCTYPE 家庭 SYSTEM "Family.dtd"><!--要求如下:1、子元素都为空元素2、家庭必须有一个人,可以没有家电3、名字和年龄是必须填写的4、性别男或女 默认为女5、住址固定为北京--><家庭><人 名字="郭大路" 性别="男" 年龄="25" 住址="北京"/><人 名字="杨柳" 年龄="38" 爱好="作个教育家和伟人"/><家电 名称="彩电" 数量="3"/></家庭>
------------------------------------------------------------------------------------DTD实体示范book.dtd
<!ELEMENT book (details+)><!ELEMENT details (name, author, publication, price)><!ELEMENT name (#PCDATA)><!ELEMENT author (#PCDATA)><!ELEMENT publication (#PCDATA)><!ELEMENT price (#PCDATA)><!ATTLIST pricetype (支票 | 现金) "现金"><!ENTITY country "中国"><!ENTITY count "印度"><!ENTITY rights "版权所有"><!ENTITY pricenotation "{1}quot;>book.xml
<?xml version="1.0" encoding="UTF-8"?><!--country 中国count 印度rights 版权所有pricenotation $type 支票或现金 默认为现金--><book><details><name>xml 使用详解</name><author>成龙来自&country;</author><publication>Mac &rights;</publication><price type="支票">&pricenotation;50</price></details><details><name>xml 揭密</name><author>Raghu 来自&count;</author><publication>Mac &rights;</publication><price>&pricenotation;45</price></details></book>--------------------------------------Schema使用示范--[b]------------------------[/b]Schema元素定义:students.xsd
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:element name="students"><xs:complexType><xs:sequence><xs:element name="student" type="xs:string" minOccurs="1" maxOccurs="2"></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>students.xml
<?xml version="1.0" encoding="UTF-8"?><students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="students.xsd"><student>pbdevn</student></students>
------------------------------------------------------------------------------------Schema元素组定义:students.xsd
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:group name="studentGroup"><xs:sequence><xs:element name="student" type="xs:string"></xs:element><xs:element name="class" type="xs:string"></xs:element></xs:sequence></xs:group><xs:element name="students"><xs:complexType><xs:sequence><xs:group ref="studentGroup" maxOccurs="2"></xs:group></xs:sequence></xs:complexType></xs:element></xs:schema>students.xml
<?xml version="1.0" encoding="UTF-8"?><students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="students.xsd"><student>jack</student><class>1班</class><student>tony</student><class>2班</class></students>
------------------------------------------------------------------------------------Schema属性定义student.xsd
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:element name="student"><xs:complexType><xs:attribute name="id" type="xs:string" use="optional"fixed="T"></xs:attribute></xs:complexType></xs:element></xs:schema>student.xml
<?xml version="1.0" encoding="UTF-8"?><student id="S101"></student>
------------------------------------------------------------------------------------Schema属性组定义student.xsd
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:attributeGroup name="message"><xs:attribute name="id" type="xs:string"/><xs:attribute name="name" type="xs:string"/></xs:attributeGroup><xs:element name="school"><xs:complexType><xs:sequence><xs:element name="student"><xs:complexType><xs:attributeGroup ref="message"/></xs:complexType></xs:element><xs:element name="teacher"><xs:complexType><xs:attributeGroup ref="message"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>student.xml
<?xml version="1.0" encoding="UTF-8"?><school xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="E:\XML案例\student.xsd"><student id="S101" name="jack"/><teacher id="T101" name="tony"/></school>
------------------------------------------------------------------------------------Schema简单类型约束student.xsd
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:simpleType name="stuAge"><xs:restriction base="xs:int"><xs:minExclusive value="18"></xs:minExclusive ><xs:maxInclusive value="50"></xs:maxInclusive></xs:restriction></xs:simpleType><xs:simpleType name="stuName"><xs:restriction base="xs:string"><xs:maxLength value="5"></xs:maxLength></xs:restriction></xs:simpleType><xs:element name="student"><xs:complexType><xs:sequence><xs:element name="name" type="stuName"></xs:element><xs:element name="age" type="stuAge"></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>student.xml
<?xml version="1.0" encoding="UTF-8"?><student xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="student.xsd"><name>tony</name><age>19</age></student>
------------------------------------------------------------------------------------Schema简单类型列表student.xsd
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:simpleType name="stuScore"><xs:list itemType="stuScoreItem"></xs:list></xs:simpleType><xs:simpleType name="stuScoreItem"><xs:restriction base="xs:int"><xs:minInclusive value="0"></xs:minInclusive><xs:maxExclusive value="100"></xs:maxExclusive></xs:restriction></xs:simpleType><xs:element name="student"><xs:complexType><xs:sequence><xs:element name="scores" type="stuScore"></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>student.xml
<?xml version="1.0" encoding="UTF-8"?><student xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="student.xsd"><scores>80 90 89</scores></student>
------------------------------------------------------------------------------------Schema复合类型序列student.xsd
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:complexType name="studentType"><xs:sequence><xs:element name="id" type="xs:string"></xs:element><xs:element name="name" type="xs:string"></xs:element></xs:sequence></xs:complexType><xs:element name="students"><xs:complexType><xs:sequence><xs:element name="student" maxOccurs="5" type="studentType"></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>student.xml
<?xml version="1.0" encoding="UTF-8"?><students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="student.xsd"><student><id>S101</id><name>jack</name></student><student><id>S102</id><name>tony</name></student></students>
------------------------------------------------------------------------------------Schema复合类型单选项student.xsd
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:element name="交通工具"><xs:complexType><xs:choice><xs:element name="自行车" type="xs:string"></xs:element><xs:element name="公交车" type="xs:string"></xs:element><xs:element name="小汽车" type="xs:string"></xs:element></xs:choice></xs:complexType></xs:element></xs:schema>student.xml
<?xml version="1.0" encoding="UTF-8"?><交通工具 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="student.xsd"><自行车>捷安特</自行车></交通工具>
------------------------------------------------------------------------------------Schema综合练习student.xsd
<?xml version="1.0" encoding="UTF-8"?><!-- edited with XMLSpy v2010 rel. 3 (http://www.altova.com) by jiang (tong) --><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:simpleType name="AgeInt"><xs:restriction base="xs:integer"><xs:minInclusive value="18"/><xs:maxInclusive value="40"/></xs:restriction></xs:simpleType><xs:simpleType name="SexEnum"><xs:restriction base="xs:string"><xs:enumeration value="男"/><xs:enumeration value="女"/></xs:restriction></xs:simpleType><xs:simpleType name="NameType"><xs:restriction base="xs:string"><xs:minLength value="2"/><xs:maxLength value="4"/></xs:restriction></xs:simpleType><xs:simpleType name="StuNumType"><xs:restriction base="xs:string">
<!--正则表达式--><xs:pattern value="T[0-9][1-9]"/></xs:restriction></xs:simpleType><xs:element name="Students"><xs:complexType><xs:sequence><xs:element name="Student" minOccurs="0" maxOccurs="3"><xs:complexType><xs:sequence><xs:element name="Name" type="NameType"/><xs:element name="Sex" type="SexEnum"/><xs:element name="Age" type="AgeInt"/></xs:sequence><xs:attribute name="StuNum" type="StuNumType" use="required"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>student.xml
<?xml version="1.0" encoding="UTF-8"?><Students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Students.xsd"><Student StuNum="T01"><Name>张三</Name><Sex>男</Sex><Age>40</Age></Student><Student StuNum="T09"><Name>李四</Name><Sex>男</Sex><Age>22</Age></Student><Student StuNum="T03"><Name>王二</Name><Sex>男</Sex><Age>18</Age></Student></Students>
相关文章推荐
- XML模式规范dtd,schema总结
- 关于XML的总结——Schema和DTD
- XML-Schema的DTD描述
- Eclipse里的No grammar constraints (DTD or XML schema) detected for the document警告
- xml DTD学习总结
- 如何解决XML文件中的警告提示“No grammar constraints (DTD or XML Schema) referenced in the document.” .
- xml约束之dtd约束和schema约束---3
- 如何解决XML文件中的警告提示“No grammar constraints (DTD or XML Schema) referenced in the document.”
- 超越学XML与DTD技术总结笔记(之二)
- No grammar constraints (DTD or XML schema) detected for the document
- XML——>总结之Schema
- 解决XML警告"No grammar constraints (DTD or XML Schema) referenced in the document"
- XML的约两种约束——DTD、Schema
- XML、DTD、XPATH要点总结
- XML第二天---XML.DTD.Schema应用开发详解
- 二、XML的DTD和Schema
- xml约束之dtd约束和schema约束---3
- xml基础、DTD验证、Schema验证(备忘)
- 超越学XML与DTD技术总结笔记(之三)
- xml的约束技术Schema、dtd