xsd中的元素可以有任意名称吗?

Sla*_*ice 2 xml xsd

我是xsd验证的新手,我正在尝试验证一个选择标签是否有一组特定的元素,但也有一个任意命名的元素.类似于以下内容:

...
<xs:choice>
  <xs:element name="test1" type="xs:string" />
  <xs:element name="test2" type="xs:string" />
  <xs:element name="-some regex or something to specify arbitrary name here" type="xs:string" />
</xs:choice>
...
Run Code Online (Sandbox Code Playgroud)

XML:

...
<test1>example text</test1>
<test2>example text again</test2>
<exampleNode>example text</exampleNode>
...
Run Code Online (Sandbox Code Playgroud)

这可能在xsd中吗?验证新的任意命名节点?

Mic*_*Kay 5

您可以使用xs:any通配符来允许任何元素名称或特定名称空间集合中的任何名称.您不能进一步限制名称(除非在XSD 1.1中使用断言).

使用具有内部结构的名称(例如地址行-1,地址行-2,地址行-3)在XML设计中总是不好的做法.在这种情况下,更好的设计是<address-line nr="1">等等.所以允许名称匹配一些正则表达式的想法表明设计不佳.通常,XML Schema的设计使得为设计不佳的词汇表编写模式变得困难或不可能.