1

我正在尝试编写一个 xsd 来验证我的程序的输入文件。

也许是我,但对于这种情况,我觉得很奇怪,我需要定义所有可能出现在 xml 中的元素,因为我只需要包含数据的一个子集,并且 xml 将来可能会扩展。鉴于这是我的 xml:

    <?xml version="1.0" encoding="utf-8"?>
      <Setup>
         <Foo desc="i don't need you">This is some random Element</Foo>
         <Bar>This is what i need to process</Bar>
         <Bar>And it might appear more than once</Bar>
         <Foobar>Some other random element. There might be more</Foobar>
      </Setup>

只要存在<Setup>-> <Bar> 是否存在有效的 xsd,无论 > 下的任何位置是否存在随机其他元素<Setup

我认为基本结构可能类似于

<?xml version="1.0" encoding="utf-8"?>
   <xs:schema>
      <xs:element name="Setup">
         <xs:complexType>
           <xs:someting>
              <xs:element name="bar" type="xs:string" minOccurence="1" maxOccurence="unbounded"/>
              <xsd:any  processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
            </xs:something>
         </xs:complexType>
      </xs:element>
   </xs:schema>

但是<any> 似乎只允许附加元素,我还没有找到一个解决方案<choice><sequence>或者<all>它们的组合来解决这个问题。有什么诀窍吗?

PS:遗憾的是 XSD1.1 不是一个选项

4

0 回答 0