xsd文件adapter-mapper.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.fgi.net.cn"
xmlns:ad="http://www.fgi.net.cn"
elementFormDefault="qualified">
<xs:element name="node">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element ref="ad:adapters"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="adapters">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="ad:adapter"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="adapterUnique">
<xs:selector xpath="ad:adapter"/>
<xs:field xpath="@name"/>
</xs:unique>
</xs:element>
<xs:element name="adapter">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="httpMethod" type="ad:httpMethodType" use="required"/>
</xs:complexType>
</xs:element>
<xs:simpleType name="httpMethodType">
<xs:restriction base="xs:string">
<xs:enumeration value="get"/>
<xs:enumeration value="post"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
其中要注意的是默認命名空間上要加前綴,比如xmlns:ad=“http://www.fgi.net.cn”,xs:selector標籤的xpath屬性和xs:element標籤的ref屬性要加前綴,引用自定義類型type屬性也需要加前綴。
要校驗的adapter-mapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<node xmlns="http://www.fgi.net.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.fgi.net.cn http://www.fgi.net.cn/adapter-mapper.xsd">
<name>adapter-demo</name>
<adapters>
<adapter name="aa" httpMethod="get"/>
<adapter name="bb" httpMethod="get"/>
</adapters>
</node>
這樣是可以校驗通過的,如果adapter的name一樣,會提示錯誤: