7

(fixml標準の)外部xsdスキーマを拡張および調整しようとしています。元のスキーマに触れることなく、一部の要素のデータ型を変更する必要がありますが、それを再定義する必要があります。しかし、それは非常に面倒だと感じています。

存在するもの:

fields-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>

本やネットもあまり役に立たなかったようですので、理論的には可能かどうか疑問に思い始めています。

4

1 に答える 1

4

私の知る限り、これは不可能です。

XMLSpyで検証できる唯一の再定義は次のとおりです。

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

つまり、新しい制限は基本制限に基づいている必要があります。

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

W3C XMLスキーマ定義からのこのやや不可解な引用:

[children]内では、各simpleTypeはその[children]の中にある必要があり、各complexTypeはそのグランド[children]の間に制限または拡張がある必要があります。独自の名前属性とターゲット名前空間の実際の値。

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

私が見つけた単純な型を再定義する唯一の本当に良い例はここにありました。この例では、再定義は列挙専用です。

于 2010-01-19T04:40:21.650 に答える