我试图做的VAR1变量无序列表中出现了两次和VAR2发生无限次(在我的项目使用情况不同)。元素不允许我使用的maxOccurs。

有没有什么,我试图做任何变通?

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="testcomment">
    <xs:complexType>
      <xs:all>
        <xs:element name="var1" type="xs:string" maxOccurs="2" />
        <xs:element name="var2" type="xs:integer" maxOccurs="unbounded" />
      </xs:all>
    </xs:complexType>
  </xs:element>
</xs:schema>
有帮助吗?

解决方案

您正在试图做的是什么样的在你的列表中的元素的类型的声音可能是不明确的不读超前,在这种情况下,有在XSD的身边没有工作,因为语言的类可以形容。

你能张贴您的XSD的相关部分?


更新:不,你不能做到这一点与XSD。你可以把什么在<xs:all>元素的规则中列出例如这里。这个约束有一个名字 - 通用电力线联盟,或唯一粒子属性的约束。这一切都与不确定性的事情以及微软网站有为什么存在一个很好的解释这里

您可以更改您的文档的布局,不需要用这种声明的,或外观如更有表现模式语言RelaxNG

其他提示

我遇到了同样的问题,有一个解决方案!看看这个答案:

https://stackoverflow.com/a/3827606/637142

<xs:element name="A">
  <xs:complexType>
    <xs:choice maxOccurs="unbounded">
      <xs:element ref="B"/>
      <xs:element ref="C"/>
    </xs:choice>
  </xs:complexType>
</xs:element>

容易,只需use<xs:choice maxOccurs="unbounded">代替<xs:all>。这会给你正在寻找的效果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top