发表于:2005-10-27 14:13:00
5楼
下面的示例 XML 架构包含下列项:
第一条语句 <?xml version="1.0" encoding="utf-8"?> 指定正在使用的 XML 的版本。
第二条语句有几部分组成:
xs:schema 声明指示这是一个架构,并且 xs: 前缀将用在架构项前。
xmlns:xs="http://www.w3.org/2001/XMLSchema" 声明指示该架构中的所有标记都应根据创建于 2001 年的万维网联合会 (W3C) 的默认命名空间进行解释。
targetnamespace 声明将该架构命名为 XMLSchema1.xsd,并指示其默认位置。该位置将在开发服务器上名为 tempuri.org 的默认 URI(统一资源标识符)中。
有关 xmlns 和 targetnamespace 的更多信息,请参见 schema 元素。
注意 当使用 XML 设计器创建架构时,会自动添加版本语句和命名空间语句。在某些情况下可以修改这两个声明的内容。例如,如果要使用标记前缀而不是“XS”,则除 XS 标记前缀外,还需要定义该标记的默认命名空间。
定义了名为“addressType”的未命名复杂类型,它将包含五个不同数据类型的元素。请注意,它所包含的每个元素都是简单的命名类型。
定义了名为“purchaseOrder”的复杂元素。它包含的元素使用前面定义的 addressType。这将在 purchaseOrder 元素和这些元素之间创建一种嵌套关系。
purchaseOrder 中的最后一个元素 Item 包含名为 MaxOccurs 的方面。方面设置对简单类型可以包含的内容类型的限制。maxOccurs 用于约束一个元素可以在从该架构创建的文档中出现多少次。默认情况下,MaxOccurs 等于 1。在此例中,将它设置为“未限定”指示 Item 元素可以按需要重新出现任意次。
下面的示例说明一个简单的 XML 架构:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://tempuri.org/XMLSchema1.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="addressType">
<xs:sequence>
<xs:element name="street1" type="xs:string"/>
<xs:element name="street2" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="state" type="xs:string"/>
<xs:element name="zip" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
<xs:element name="purchaseOrder">
<xs:complexType>
<xs:sequence>
<xs:element name="shipTo" type="addressType" />
<xs:element name="billTo" type="addressType" />
<xs:element name="shipDate" type="xs:date" />
<xs:element name="item" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>