使用XSD在XSLT中输入一个元素

时间:2011-11-28 08:02:13

标签: xslt xsd duck-typing

我在XSL中创建一个函数,它接受一个XML元素作为参数。我对此XML元素有一定的期望:例如,它必须具有<name>子元素和<id>子元素。因此,以下两个元素中的任何一个都是可以接受的:

 <person>
   <id>1234</id>
   <age>16</age>
   <address><city>NYC</city><state>NY</state></address>
   <name>J. Random</name>
 </person>

 <company corp="false">
   <name>ACME, Inc.</name>
   <founded>1973</founded>
    .
    .
    .
   <id>6785</id>
 </company>

请注意,我不关心元素名称,<name><id>出现的顺序,以及元素具有的任何其他子元素(或属性)。

我可以在XSD中表达此要求,并将其用于as的{​​{1}}属性吗?

1 个答案:

答案 0 :(得分:1)

您可以在XSD中定义一个复杂类型,其唯一要求是内容包含名称和id元素,但我不确定这将是一件非常有用的事情;我认为你会以一种不打算使用的方式使用类型系统,你可能最终会发现它令人沮丧,尽管我不确切地知道你会遇到什么困难。