2011-12-02 88 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属性。 –