2011-07-03 83 views
0

我想聲明下一個類型的限制:聲明與屬性和文本的類型時,由圖案

<partCode negation="true|false">\*|[0-9]{1,9}</name> 

與布爾屬性,只有文本的內容,由一個圖案(*或數字)的限制。

我旁邊XSD至今:

<xs:complexType name="partCode"> 
    <xs:simpleContent> 
     <xs:restriction base="xs:string"> 
      <xs:pattern value="\*|[0-9]{1,9}" /> 
     </xs:restriction> 
     <xs:extension base="xs:string"> <-- error 
      <xs:attribute name="negation" type="xs:boolean" use="optional" default="false" /> 
     </xs:extension> 
    </xs:simpleContent> 
</xs:complexType> 

但它包含一個錯誤:

The 'extension' element already exists in the content model

我怎樣才能做到這一點?

回答

0
<xs:complexType name="PartCodeValue"> 
    <xs:simpleContent> 
     <xs:extension base="xs:string"> 
      <xs:attribute name="negation" type="xs:boolean" use="optional" default="false" /> 
     </xs:extension> 
    </xs:simpleContent> 
</xs:complexType> 
<xs:complexType name="PartCode"> 
    <xs:simpleContent> 
     <xs:restriction base="PartCodeValue"> 
      <xs:pattern value="\*|[0-9]{1,9}" /> 
     </xs:restriction> 
    </xs:simpleContent> 
</xs:complexType> 
0

您不能在同一步驟中限制和擴展。首先定義滿足該模式的xs:string的限制;然後定義添加屬性的擴展名。

+0

請您舉個例子,很高興接受它。 – abatishchev