有人说如果XML是数据,那么XSD就是数据库(体现一种数据格式和数据约束),xsd即xml schema,是dtd文件的替代物;详细可以参考W3C(http://www.w3school.com.cn/)
如何写XSD,我也是学了一些没有完全学会,写了一个例子记录下
<policies>
<policy id="demo1">
<pointcut protocol="SOAP" service="testService1"operation="test1"type="request"></pointcut>
<capability-ref name="demo1" />
</policy>
<policy id="demo2">
<pointcut protocol="*" service="testService1" operation="test1"></pointcut>
<capability-ref name="demo2" />
</policy>
</policies>
看了W3C上面关于XSD的介绍和教程,发现这个XML接近是只"小麻雀"(麻雀虽小,五脏俱全),不多说上货:
热门评论
<xsd:element name="capability-ref">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string"></xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="pointcut" >
<xsd:complexType>
<xsd:attribute name="protocol" type="xsd:string"></xsd:attribute>
<xsd:attribute name="service" type="xsd:string"></xsd:attribute>
<xsd:attribute name="operation" type="xsd:string"></xsd:attribute>
<xsd:attribute name="type" type="xsd:string"></xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/an-message"
xmlns="http://www.example.org/an-message"
elementFormDefault="qualified"> <!-- 这个可以看教程-->
<xsd:element name="policies">
<xsd:complexType> <!-- policies是个复杂类型-->
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element name="policy">
<xsd:complexType>
<xsd:sequence >
<xsd:element ref="pointcut" minOccurs="1" ></xsd:element>
<xsd:element ref="capability-ref" minOccurs="1"/> <!--使用ref,元素申明必须要有命名空间(xsd:)-->
</xsd:sequence>
<xsd:attribute name="id" form="unqualified" type="xsd:string"></xsd:attribute><!-- 属性被要求写在下面 。-->
</xsd:complexType>
</xsd:element>