2013-02-26 54 views
1

我想在XSD從xs:stringName屬性的類型更改爲xs:int,像下面XSD - 可以改變屬性類型的擴展型

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     xmlns="http://www.my.own/2013/XMLSchema"> 

    <xs:complexType name="AType"> 
     <xs:attribute name="Name" type="xs:string" use="required" /> 
    </xs:complexType> 

    <xs:complexType name="BType"> 
     <xs:complexContent> 
      <xs:extension base="AType"> 
       <xs:sequence> 
        <xs:choice> 
         <xs:element name="Content" type="xs:string"/> 
        </xs:choice> 
       </xs:sequence> 
       <xs:attribute name="Name" type="xs:int" use="required"/> 
      </xs:extension> 
     </xs:complexContent> 
    </xs:complexType> 
</xs:schema> 

這是XSD有效嗎?如果不是,是否存在其他解決方案來更改屬性的類型?

+2

是'Nane'在基礎'ATTY'錯字? – SparKot 2013-02-26 11:35:38

+0

你的問題是什麼可以改變或是否有效? – chiru 2013-02-26 13:38:32

+0

1.錯字固定。 2.其實我對這兩個問題的答案都感興趣 – CAMOBAP 2013-02-26 13:47:40

回答

1

不,類型派生的原則是,如果您從基類型派生新類型,派生類型的實例仍必須是基類型的有效實例。所以你不能將一個屬性從字符串改爲int。

+0

冷,請提供鏈接到支持您的文字的文檔? – CAMOBAP 2013-02-26 18:58:57

+1

您違反了http://www.w3.org/TR/xmlschema-1/#cos-ct-extends的第1.2條款 – 2013-02-26 21:15:05