针对Xsd-Schema验证Xml-File(带有其他元素)

时间:2011-12-02 11:04:41

标签: xml validation xsd

我有一个Xml-Schema文件来验证xml-Files。

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-Files,其中包含以下其他元素:

<?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>

在这个例子中,我添加了元素'City'。

验证失败,因为它没有期望更多的元素。

  

我必须在我的架构中添加什么,它接受其他元素?

我想这样做,因为有时在xml-Files中添加了新元素。但我不想在模式中定义它们,因为即使只添加了一个元素,我也不想分发更新的模式。

我搜索的东西就像是一个“占位符”,用于存储无限多个元素。

1 个答案:

答案 0 :(得分:2)

在序列中添加xs:any,可能是无限制的maxOccurs。有关详细信息:http://www.w3.org/TR/xmlschema-1/#element-any