不同的验证对XSD
问题描述:
相同元素的名字,我有这样的XML文件:不同的验证对XSD
<myNode>
<myProperty name="Title" value="MyTitle" />
<myProperty name="ProductId" value="123456" />
</myNode>
是否可以写一个XSD来验证第一个属性(“标题”)必须是一个字符串,和第二个属性(“ProductId”)必须是整数?
答
不幸的是,你不能这样做。 XSD为XML看起来像:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="myNode">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="myProperty">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
解决您的问题,您可以为如下因素XML创建XSD:
<myNode>
<Properties>
<Title value="MyTitle" />
<ProductId value="123456" />
</Properties>
</myNode>
可悲的是,我没有在XML文件控制。我只是试图尽可能使用XSD进行验证,但在这种情况下,它看起来并没有多大用处。 – Badaro