2
我的架构中的这一部分给我找麻烦:定义XSD架构元素的列表
<xs:element name="newrecipients">
<xs:complexType>
<xs:choice>
<xs:element name="csv" type="xs:string" />
<!-- List of recipients -->
</xs:choice>
</xs:complexType>
</xs:element>
收件人列表就像是事情的清单:
<recipient>
<field1>...</field1>
...
<fieldN>...</field>
</recipient>
其中标签收件人可能包含模式未知的随机标签序列。所以我用了类似
<xs:element name="recipient">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
问题是我没有如何定义收件人列表。我知道<xs:list>
但我不知道如何在这种情况下使用它,因为我通常看到类似
<xs:element name="intvalues" type="valuelist">
<xs:simpleType name="valuelist">
<xs:list itemType="xs:integer"/>
</xs:simpleType>
</xs:schema>
,你必须定义一个包含列表中的一个元素。我想直接csv
或直接list
。
我错过了什么?谢谢。
编辑:输出例如
此:
<newrecipients>
<csv>myrecipients.csv</csv>
</newrecipients>
或本:
<newrecipients>
<recipient>
<field1>...</field1>
...
<fieldN>...</field>
</recipient>
...
<recipient>
<field1>...</field1>
...
<fieldN>...</field>
</recipient>
</newrecipients>
谢谢你的回答。我添加了一个我想要的例子。我想用你的例子,我可以只有一个收件人标签,因为它是一种选择? – dierre 2012-07-11 08:18:27
我发现这个例子:http://xmlzoo.net/xsd/?xml=16q.xml 从那里陈述,似乎即使你有一个xsd:选择,你仍然可以指定某个元素可以重复几次将maxOccurs值设置为无限制。所以解决方案应该工作。 – user1187008 2012-07-11 08:28:15