<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" ---schema文件,schema的声明
elementFormDefault="qualified" attributeFormDefault="unqualified"> ---xs代表命名空间
<xs:element name="书本" type="书本类型"/> ---定义一个元素.
<xs:complexType name="书本类型"> ---定义一个复合类型,类型名称为name.
<xs:sequence minOccurs="0" maxOccurs="unbounded">---代表这个复合类型中按顺序包含2个子元素.
---minOccurs代表最少出现次数,maxOccurs是最多.
<xs:element name="名称" type="xs:int"/> ---子元素类型为int.
<xs:element name="作者" type="xs:date"/> ---这个子元素类型为date.
</xs:sequence>
</xs:complexType>
</xs:schema>
<书本 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="myschema.xsd"> ---这个是xml文件,这个是元素调用schema.
<名称>12</名称>
<作者>2010-12-25</作者>
</书本>
<xs:simpleType> ---代表简单类型.
<xs:restriction base="xs:string"> ---代表这个类型基于string型.
<xs:enumeration value="男"/> ---这个类型的内容只能是男或者女,因为enumeration是枚举.
<xs:enumeration value="女"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:integer"> ---代表这个类型基于integer.
<xs:minInclusive value="1" /> ---内容只能是1到150的整数,并且是闭区间.
<xs:maxInclusive value="150"/>
</xs:restriction>
</xs:simpleType>
<xs:group name="myGroup"> ... </xs:group> ---代表元素的组,相当于将很多元素集合在一起.
<xs:attribute name="interest" type="xs:integer" use="required"/> ---代表元素的属性,类型,和是否必须使用.
<xs:attributeGroup name="myAttributeGroup"> ... </xs:attributeGroup> ---代表属性组,把很多属性集合成组.
<xs:simpleType name="myType"> ---自定义简单类型.约束该类型基于integer,内容只能为>0并且<=100的整数.
<xs:restriction base="xs:integer">
<xs:minExclusive value="0"/>
<xs:maxInclusive value="100"/>
</xs:restriction>
</xs:simpleType>
<xs:list itemType="xs:date"/>
---代表所有内容必须是date类型,list代表内容可以用空格隔开,比如2010-10-10 2010-10-10
<xs:union memberTypes="a b" /> ---代表a和b的集合.
<xs:choice minOccurs="1" maxOccurs="3"> ---代表可以选择一次到3次,但每次只能选择组中一个元素.
---------------------***感谢风中叶老师的视频*****-----------------------------------
schema是一个xml文件,但dtd不是xml文件.
所有的schema文档,其根元素必须为schema.
simpleType类型的元素没有子元素,也没有属性.
当需要定义的元素包含了子元素或者属性时,必须要用complexType.
simpleContent用于ComplexType元素上,用于限定该complexType的内容类型.表示该complexType没有子元素,
同时该complexType需要有属性.如果没有属性,那么就成了simpleType了.
通过DOCTYPE可以明确指定文档的根元素,因为DOCTYPE后面跟的元素就是文档的根元素.
通过schema是没法明确指定目标xml文档的根元素,XMLSPY是通过推断哪个元素包含了其他元素来选择包含其他元素最多的
那个元素来作为文档的根,但我们可以明确指定文档的根元素而不必按照xmlspy的生成来做.
DOM:document object model 文档 对象模型.
对于xml开发来说,DOM是一个对象化得xml数据接口,一个与语言无关,与平台无关的标准接口规范.
根节点代表的是xml文档本身,是解析xml文档的入口.
而根元素结点则表示xml文档的根元素,它对应于xml文档的root.