2011-11-24 57 views
0

相同元素的名字,我有這樣的XML文件:不同的驗證對XSD

<myNode> 
    <myProperty name="Title" value="MyTitle" /> 
    <myProperty name="ProductId" value="123456" /> 
</myNode> 

是否可以寫一個XSD來驗證第一個屬性(「標題」)必須是一個字符串,和第二個屬性(「ProductId」)必須是整數?

回答

0

不幸的是,你不能這樣做。 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> 
+0

可悲的是,我沒有在XML文件控制。我只是試圖儘可能使用XSD進行驗證,但在這種情況下,它看起來並沒有多大用處。 – Badaro