xml,dtd,schema的demo_2
<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.
?
?
?
??