XML Schema续


<?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>

你可能感兴趣的:(xml,schema)