2014-10-27 71 views
1

我是XSD的新手,對當前行爲感到困惑,我不確定我缺少什麼。 在VB中構建一個WCF服務我想創建一些可選的元素。 我有2個元素定義,我想是可選的,要麼他們是web服務請求的一部分或不,我不在乎。但是,我不斷收到錯誤,這兩個都是必需的。 我錯過了一些明顯的東西嗎? Sequence和All都應該和minOccurrs以及引用一樣。儘管minOccurs = 0需要XSD元素

在我的研究,我知道我使用的minOccurs =「0」 作爲從W3Schools的下面引用

MinOccurs defined...

的「的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> 

回答

1

全局聲明不能包含屬性minOccurs,maxOccurs或使用。你可能想引用這個鏈接。 http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints

+0

我很抱歉,但不清楚你指的是什麼。應該將ExternalId和SecondID聲明爲不是ref而是其他的「name =」?我需要將這兩個新ID包含到一個已經很大的XSd中,所以我希望能將影響降到最低。 – treeNinja 2014-10-27 16:56:49

+0

很棒!我仍然努力讓我的XSD正常工作,但這表明我朝着正確的方向前進。 – treeNinja 2014-10-27 18:56:39