您可以使用this XML generator 等在线工具生成带有架构的示例XML。拥有实例后,您还可以使用在线工具对其进行验证。 This XML validator 允许您保存验证对并稍后参考。
在尝试生成或验证任何内容之前,您必须正确构建架构,并使用 <schema> 根元素和命名空间声明:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
如果您使用上面提到的生成服务,您将获得以下示例实例:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Document created with online XML Editor http://xmlgrid.net 2014/06/19 14:51:15 -->
<employee>
<firstname>test string</firstname>
<lastname>test string</lastname>
</employee>
您还可以以声明方式将实例绑定到架构,以便对其进行验证,而无需单独指定架构。如果您的架构没有目标命名空间,您将使用 XML 架构实例属性 noNamespaceSchemaLocation(需要在 XSD 实例命名空间中进行限定):
<employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="schema-uri.xsd">
<firstname>test string</firstname>
<lastname>test string</lastname>
</employee>
如果它有一个目标命名空间(不是上面的架构的情况),您将使用schemaLocation,它需要一对(或者更多,如果您有来自多个架构的元素在一个document) 的空格分隔的字符串,映射命名空间及其位置。
<employee xmlns="employee-namespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="employee-namespace schema-uri.xsd">
<firstname>test string</firstname>
<lastname>test string</lastname>
</employee>
为了验证这一点,您的架构需要在根元素中具有 targetNamespace 属性。通常你也会将目标命名空间声明为默认命名空间,所以如果需要,你可以引用其他本地类型:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="employee-namespace"
xmlns="employee-namespace"
elementFormDefault="qualified">
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>