XSD:単純例えばのデータ型を再定義する方法。 XSに文字列:整数XSから

StackOverflow https://stackoverflow.com/questions/2090855

質問

私は(FIXML標準の)外部のXSDスキーマを拡張し、合わせしようとしています。私は元のスキーマに触れることなく、それを再定義することによって、いくつかの要素のデータ型を変更する必要があります。しかし、それは非常に面倒な発見されています。

が存在する何ます:

フィールド-base.xsd

<xs:simpleType name="LastUpdateTime_t">
           <xs:restriction base="UTCTimestamp">
<xs:simpleType>

私はそれがなりたい何ます:

<xs:simpleType name="LastUpdateTime_t">
           <xs:restriction base="xs:string">
<xs:simpleType>

私は何をしようとした(ただし、失敗した)ています:

<xs:redefine schemaLocation="fields-base.xsd">
            <xs:simpleType name="LastUpdateTime_t">
              <xs:restriction base="xs:string" />
            </xs:simpleType>
 </xs:redefine>

ブックとネットいけないが、これがすべてでは理論的には可能である場合、私は疑問に始めていますので、どちらかあまり役立っているように見える。

役に立ちましたか?

解決

私の知る限り、これは不可能です言うことができるようにます。

私だけがXMLSpyの中に検証を作ることができる再定義します:

<xs:redefine schemaLocation="fields-base.xsd"> 
        <xs:simpleType name="LastUpdateTime_t"> 
          <xs:restriction base="LastUpdateTime_t" /> 
        </xs:simpleType> 
</xs:redefine> 

新しい制限は、ベース制限に基づいていなければならない、です。

XMLSpyにはこのことについて間違っている可能性があります。

W3C XMLからの

このやや不可解な引用スキーマ定義するます:

  

[子供]内では、各   単純には、持っている必要があります   その[子供]の中で、各   complexTypeの制限を持っている必要があります   間または拡張その   [子供]・実際値・のgrand-   そのベース[属性]でなければなりません   独自のの・実際値・同じ   name属性に加えて、ターゲット名前空間;

このについて話される可能性があります(それは、このエラーのためにXMLSpyにリンク仕様の一部である)。

私は見つけることができるシンプルなタイプを再定義するのだけは本当に良い例はましたここを。この例では、再定義は、唯一の列挙です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top