我是XSD的新手并且对目前的行为感到困惑,我不确定我缺少什么。 在VB中构建WCF服务时,我正在尝试创建一些可选的元素。 我有2个元素定义,我想要是可选的,要么它们是web服务请求的一部分,要么不关心,我不在乎。但是我不断得到两者都需要的错误。 我错过了一些明显的东西吗序列和所有两者都应该是minOccurrs以及引用。
在我的研究中,我知道我要使用minOccurs =" 0" 如下面w3Schools所述
" minOccurs"指标指定的最小次数 元素可以发生。
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
maxOccurs="10" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
上面的示例表明&#34; child_name&#34;元素可以发生 &#34;#34;最少零次,最多十次; 元件。
有了这个我已经定义了我的ThirdPartyMessage如下: 目标是具有ExternalID和SecondID(无法控制名称)
<xs:element name="ThirdPartyMessage">
<xs:complexType>
<xs:all>
<xs:element ref="Subject"/>
<xs:element ref="Message"/>
<xs:element ref="RequestType" />
<xs:element ref="ExternalID" minOccurs="0"/>
<xs:element ref="SecondID" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
以及
内 <xs:complexType name="MessageHeaderType">
<xs:sequence>
<xs:element name="RqUID" type="UUID"/>
<xs:element name="AsyncRqUID" type="UUID" minOccurs="0"/>
<xs:element name="PartnerKey" type="Identifier" minOccurs="0"/>
<xs:element ref="ExternalID" minOccurs="0" maxOccurs="1"/>
<xs:element ref="SecondID" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
定义为
<xs:element name="ExternalID">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="0"/>
<xs:maxLength value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SecondID">
<xs:simpleType>
<xs:restriction base="Integer">
</xs:restriction>
</xs:simpleType>
</xs:element>
答案 0 :(得分:1)
全局声明不能包含属性minOccurs,maxOccurs或use。您可能想要参考此链接。 http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints