2010-11-29 30 views
2

以下xml針對提供的xsd文檔進行驗證。但是,當我開始從XML中刪除元素,它仍然驗證!?如何指定不需要按順序排列的必需xml子元素的列表?

如何編寫強制包含元素的xsd?

<?xml version="1.0" encoding="UTF-8"?> 
<Video> 
    <Title> 
    </Title> 
    <Description> 
    </Description> 
    <Contributor> 
    </Contributor> 
    <Subject> 
    </Subject> 
</Video> 

然後我有XSD:

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema id="UploadXSD" 
    targetNamespace="http://tempuri.org/UploadXSD.xsd" 
    elementFormDefault="qualified" 
    xmlns="http://tempuri.org/UploadXSD.xsd" 
    xmlns:mstns="http://tempuri.org/UploadXSD.xsd" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="Video"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Title" minOccurs="1" type="xs:string"></xs:element> 
     <xs:element name="Description" minOccurs="1" type="xs:string"></xs:element> 
     <xs:element name="Contributor" minOccurs="1" type="xs:string"></xs:element> 
     <xs:element name="Subject" minOccurs="1" type="xs:string"></xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

</xs:schema> 

回答

1

您的xsd中的targetNamespace應與你試圖驗證的XML的名稱空間,即

<Video xmlns="http://tempuri.org/UploadXSD.xsd"> 
    <Title> 
    </Title> 
    <Description> 
    </Description> 
    <Contributor> 
    </Contributor> 
    <Subject> 
    </Subject> 
</Video> 
+0

謝謝你的作品.... – Exitos 2010-11-29 15:33:48

4

如果使用xs:all,而不是xs:sequence,這些元素可以以任何順序出現。還有一些額外的限制 - 例如,元素不能使用all指定多次(我不確定您是否打算使用該模式,您的模式當前會允許使用該模式。)

相關問題