2011-12-02 89 views
0

我有一個Xml-Schema文件來驗證xml文件。使用Xsd Schema驗證Xml文件(附加元素)

XML的架構:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> 
    <xs:element name="Person"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="Firstname"/> 
       <xs:element name="Surename"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 

我希望能夠成功地驗證XML的文件,有其他元素這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Test.xsd"> 
    <Firstname>Jane</Firstname> 
    <Surename>Doe</Surename> 
    <City>Berlin</City> 
</Person> 

在這個例子中,我添加的元素「市'。

驗證失敗,因爲它沒有期望更多的元素。

我必須在我的模式中添加什麼,它接受額外的元素?

我想這樣做,因爲有時新的元素在XML的文件添加。但我不想在模式中定義它們,因爲即使只添加了一個元素,我也不想分配更新的模式。

我搜索的東西就像是一個'佔位符',用於無數個附加元素。

回答

2

在你的序列中加上xs:any,可能是無限制的maxOccurs。欲瞭解更多信息:http://www.w3.org/TR/xmlschema-1/#element-any

+0

謝謝,它的工作原理。在我問這個問題之前,我曾試着用「任何」來試用它。我忘了設置processContents屬性。 –