xs:choice 嵌入 xs:sequence 中以防止使用联合
我有以下 xsd
<xsd:complexType name="myID">
<xsd:choice>
<xsd:element name="testID" type="priv:testID"/>
<xsd:sequence>
<xsd:element name="newID" type="priv:newID"/>
<xsd:element name="testID" type="priv:testID" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
一切都在 priv
命名空间下。问题是 myID
看起来像是一个联合。它可能是一个 testID
或一个包含 newID
和 testID
的序列。当我使用 gsoap
中的 wsdl2h
编译它时,我收到以下消息:
注意:
嵌入
或
阻止使用联合
上面的 XSD 正确吗?
I have the following xsd
<xsd:complexType name="myID">
<xsd:choice>
<xsd:element name="testID" type="priv:testID"/>
<xsd:sequence>
<xsd:element name="newID" type="priv:newID"/>
<xsd:element name="testID" type="priv:testID" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
Everything is under priv
namespace. The problem is that it looks like that myID
is a union. It might be a testID
or a sequence with newID
and testID
. When I compile it with wsdl2h
from gsoap
I am taking the message:
Note:
<xs:choice>
with embedded<xs:sequence>
or<xs:group>
prevents the use of a union
Is the above XSD correct?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一般来说,XML 类型
myID
可以按照您的描述进行声明。冲突的存在可能与您未包含的类型priv:testID
和priv:testID
的定义有关。例如,架构将是正确的。因此,如果存在错误,则它不在您发布的部分中。
In general the XML type
myID
can be declared as you described. The conflict exist probably in connection with your definition of the typespriv:testID
andpriv:testID
which definition you not included. For example the schemawill be correct. So if an error exist, it is not in the part which you posted.