次の方法で共有


制約メカニズムを使用した単純型の派生

概要

制約メカニズムを使用して既存の単純型から新しい単純型を派生させる場合、インスタンス メッセージの属性値または要素値に使用できる値を、基本単純型で許容された値のサブセットに制限するのが一般的です。 たとえば、文字列型は、複数の列挙文字列のいずれかに制限できます。

制約メカニズムを使用して新規の単純型を派生させる方法の概要については、W3C Web サイトを参照してください。 この Web サイトや他の Web サイトへのさまざまなリンクについては、「 XSD Resources on the Web」を参照してください。

Field 要素とフィールド属性

制限を使用して単純型を派生するには、スキーマ ツリーで関連する [フィールド要素] ノードまたは [フィールド属性] ノードを選択し、プロパティ ウィンドウの [基本データ型] プロパティのドロップダウン リストから単純型を選択します。 このプロパティの値を選択するとすぐに、 Derived By プロパティは既定値から Restriction に自動的に変更されます。これは、型派生の既定値として機能します。 また、"制限" と呼ばれるプロパティのまったく新しいカテゴリが、プロパティ ウィンドウで使用できるようになります。

この新しいカテゴリで設定できるプロパティは、選択した基本データ型によって異なります。 たとえば、基本データ型が数値の場合、プロパティ MaxFacet Type (MaxFacet Value が設定されている場合)、MaxFacet ValueMinFacet Type (MinFacet Value が設定されている場合)、MinFacet 値を使用して、許可される値の包括的または排他的な範囲を定義できます。 基本データ型が文字列型の場合は、文字列の長 さを制限するために Length、 Maximum Lengthおよび Minimum Length プロパティを使用できます。

フィールド ノードのさまざまな制限プロパティの詳細については、UI ガイダンスと開発者 API 名前空間のリファレンス「フィールド要素ノードのプロパティ」を参照してください。

最初に Field Element ノードまたは Field Attribute ノードをデータ型から基本データ型に変更する (これにより単純型派生のプロセスを開始する) 場合は、Derived By プロパティを [制限] に設定したままにし、許可される文字列値に列挙ベースの制限を指定すると、XSD ビューの対応するフラグメントで次の変更を確認できます。

  • 以前は、WestCoastStates という名前の Field Element ノードが新しく挿入されました。

    <xs:element name="ContainingRecord">  
        <xs:complexType>  
            <xs:sequence>  
                <xs:element name="WestCoastStates" type="xs:string" />  
            </xs:sequence>  
        </xs:complexType>  
    </xs:element>  
    
  • 基本データ型プロパティを "xs:string" に設定した後、派生元プロパティの派生の既定値である Restriction のままにします。

    <xs:element name="ContainingRecord">  
        <xs:complexType>  
            <xs:sequence>  
                <xs:element name="WestCoastStates" >  
                    <xs:simpleType>  
                        <xs:restriction base="xs:string" />  
                    </xs:simpleType>  
                </xs:element>  
            </xs:sequence>  
        </xs:complexType>  
    </xs:element>  
    
  • [制限] カテゴリの列挙プロパティを、大陸米国の西海岸にある 3 つの州の名前に設定した後。

    <xs:element name="ContainingRecord">  
        <xs:complexType>  
            <xs:sequence>  
                <xs:element name="WestCoastStates">  
                    <xs:simpleType>  
                        <xs:restriction base="xs:string" />  
                            <xs:enumeration value="Washington" />  
                            <xs:enumeration value="Oregon" />  
                            <xs:enumeration value="California" />  
                        </xs:restriction>  
                    </xs:simpleType>  
                </xs:element>  
            </xs:sequence>  
        </xs:complexType>  
    </xs:element>  
    

参照

単純型の派生