1
我是XSD的新手,對當前行爲感到困惑,我不確定我缺少什麼。 在VB中構建一個WCF服務我想創建一些可選的元素。 我有2個元素定義,我想是可選的,要麼他們是web服務請求的一部分或不,我不在乎。但是,我不斷收到錯誤,這兩個都是必需的。 我錯過了一些明顯的東西嗎? Sequence和All都應該和minOccurrs以及引用一樣。儘管minOccurs = 0需要XSD元素
在我的研究,我知道我使用的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>
上面的例子表明「CHILD_NAME」元素可以出現 最小值0倍,在「人」 元件最多十次。內
<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>
採用具有外部ID和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>
的目標,除了:
有了這個,我已經定義我的ThirdPartyMessage如下定義爲
<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>
我很抱歉,但不清楚你指的是什麼。應該將ExternalId和SecondID聲明爲不是ref而是其他的「name =」?我需要將這兩個新ID包含到一個已經很大的XSd中,所以我希望能將影響降到最低。 – treeNinja 2014-10-27 16:56:49
很棒!我仍然努力讓我的XSD正常工作,但這表明我朝着正確的方向前進。 – treeNinja 2014-10-27 18:56:39