<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:simpleType name="myType">
<xs:list itemType="xs:integer"/>
</xs:simpleType>
<xs:element name="hello" type="myType"/>
</xs:schema>
hello元素是一个简单类型 基于整数的list 用空格分开即可
对应的有效xml:
<?xml version="1.0" encoding="UTF-8"?>
<hello xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="test6.xsd">
1 2 3 4
</hello>
complexType与simpleType区别(重要)
1 simpleType类型的元素中不能包含元素或者属性
2 当需要声明一个元素的子元素和/或属性时,用complexType;
3 当需要基于内置的基本数据类型定义一个新的数据类型时,用simpleType。
targetNamespace
在Schema中targetNamespace定义了Schema定义出的新元素与属性的名称空间。也就是它是对所定义的XML模型进行限制:限制定义出的元素,或者属性的名称空间。与targetNamespace相关的还有两个属性:elementFormDefault ,attributeFormDefault,这两个属性的缺省值都是unqualified。 如果定义为unqualified表示定义的元素的名称空间可以缺省,此时直接引用父元素的名称空间。如果是qualified则表示,必需要指明名称空间,不能直接引用其父元素的,要指明。(如果Schema限定的文档,刚好定义了”空的名称空间“并且刚好与targetNamespace一至,可以缺省)。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/po.xsd" targetNamespace="http://tempuri.org/po.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="purchaseOrder" type="PurchaseOrderType"/>
<xs:element name="comment" type="xs:string"/>
<xs:element name="test" type="xs:string"/>
<xs:complexType name="PurchaseOrderType">
<xs:sequence>
<xs:element name="shipTo" type="USAddress"/>
<xs:element name="billTo" type="USAddress"/>
<xs:element ref="comment" minOccurs="0"/>
<xs:element ref="test"/>
<xs:element name="items" type="Items"/>
</xs:sequence>
<xs:attribute name="orderDate" type="xs:date"/>
</xs:complexType>
<xs:complexType name="USAddress">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="street" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="state" type="xs:string"/>
<xs:element name="zip" type="xs:decimal"/>
</xs:sequence>
<xs:attribute name="country" type="xs:NMTOKEN" fixed="US"/>
</xs:complexType>
<xs:complexType name="Items">
<xs:sequence>
<xs:element name="item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="productName" type="xs:string"/>
<xs:element name="quantity">
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:maxExclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="USPrice" type="xs:decimal"/>
<xs:element ref="comment" minOccurs="0"/>
<xs:element name="shipDate" type="xs:date" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="partNum" type="SKU" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Stock Keeping Unit, a code for identifying products -->
<xs:simpleType name="SKU">
<xs:restriction base="xs:integer">
<xs:minInclusive value="2"/>
<xs:maxInclusive value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<n:purchaseOrder xmlns:n="http://tempuri.org/po.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tempuri.org/po.xsd
D:\MLDN\[北京圣思园教育]20101031.Web.Service公开课.文档、源码、安装文件[ED2000.COM]\ws公开课\schema\order.xsd">
<n:shipTo country="US">
<n:name>testName</n:name>
<n:street>testStreet</n:street>
<n:city>testCity</n:city>
<n:state>testState</n:state>
<n:zip>5</n:zip>
</n:shipTo>
<n:billTo country="US">
<n:name>testName</n:name>
<n:street>testStreet</n:street>
<n:city>testCity</n:city>
<n:state>testState</n:state>
<n:zip>5</n:zip>
</n:billTo>
<n:comment>
cc
</n:comment>
<n:test>ttt</n:test>
<n:items>
<n:item partNum="2">
<n:productName>thinking in java</n:productName>
<n:quantity>10</n:quantity>
<n:USPrice>70</n:USPrice>
<n:comment>
java
</n:comment>
<n:shipDate>2013-04-15</n:shipDate>
</n:item>
</n:items>
</n:purchaseOrder>
43

被折叠的 条评论
为什么被折叠?



