XSD扩展,用于启用包含特定节点的任何元素

时间:2017-01-23 10:20:25

标签: xml xsd

我有一个XML和XSD方案,目前验证工作正常! 现在在某些特殊情况下,我想启用任何XML元素来包含特定节点。

E.g。对于给定的XML

<Root>
   <Element1 Name="test1>Text1</Element1>
   <Element2 Name="test2>
   </Element2>
</Root>

我想扩展XSD,以便任何元素都可以包含节点 文本。

e.g。

<Root>
   <Template>element within Root</Template> 
   <Element1 Name="test1>Text1<Template>element inline</Template></Element1>
   <Element2 Name="test2>
      <Template>element within Element2</Template> 
   </Element2>
</Root>

我真的很感激任何帮助!

BR

1 个答案:

答案 0 :(得分:0)

在XSD 1.0中很难做到这一点,你需要放置&lt; xs:any&gt;你想要“任何”的元素。要出现的元素。

但不是那么简单,放置&lt; xs:any&gt;在错误的地方造成歧义(并且是不允许的),这几乎涵盖了你想要放置的所有地方!

在XSD 1.1中你可以使用openContent(brief tutorial),但同样存在问题,.Net中本身不支持XSD 1.1,但如果你在java中工作,那么Xerces支持XSD 1.1(至少一个我上次看了beta版本。