スキーマのサポート レベル
このセクションでは、スキーマサポートのレベルに関する詳細について説明します。
スキーマでは、次のものが直接サポートされています。
- 要素のシーケンス。
- 要素型の派生。
- 要素の単純な選択肢 (タグ付き共用体にマップされる要素)。
- 範囲 (最小/最大) を含む XSD/.NET バイナリ形式で定義される基本型。
- 任意の要素を簡単にサポートします (要素の型に制限はありません)。
- 省略可能な要素と既定値を持つ属性。
- 範囲を持つ要素の繰り返し (最小/最大)。
- Nillable 要素。
スキーマでは、次の機能は直接サポートされていません (これは"フォールバック" 動作を意味します)。
- ユーザー定義の基本型。
- より複雑な選択肢。
- 不明な属性の拒否。
- 不明な属性のラウンド トリップ。
- 任意の要素に対するより複雑なサポート。
- all コンストラクト。
- Key/keyref。
さまざまなスキーマ コンポーネントのサポートの詳細な内訳を次に示します。 機能の類似性のため、WCF のデータ コントラクトと比較されます。 相違点について説明する。
一般に、フォールバック動作の場合:
- 属性はWS_STRINGにフォールバックされます。
- 要素のコンテンツは、WS_XML_BUFFERにフォールバックされます。
- complexType は、WS_XML_BUFFERのフィールドを含む構造体にフォールバックされます。
- 単純型は、WS_STRINGに基づくものになります。
wsutil は、現在完全にはサポートされていないスキーマ コンポーネントに対して警告を生成します。 アプリケーションでは、これらのコンポーネントに対して追加の検証が必要になる場合があります。 既定の値のサポートなど、実行時に現在サポートされている機能の一部を処理するように、超過時間 wsutil を改善できます。 wsutil をシリアル化と共に改善して、抽象などの他の機能をサポートすることもできます。 サポートされていないスキーマ コンポーネントの数は、時間の経過と同時に減らすことができます。
スキーマ ドキュメント全体
スキーマ内の埋め込み定義に影響する可能性があるグローバル定義。 これらは、スキーマ内のすべての定義に適用できるグローバル属性です。
xs:schema> 属性を <する
- attributeFromDefault 無視されます。
- blockDefault Ignored。
- elementFormDefault 無視されます。 非修飾要素は実行時にサポートされるため、これは dataContract とは異なります。
- finalDefault は無視されます。 final の概念に対する C 言語のサポートはありません。
- id 無視されます。
- targetNamespace サポートされ、サービス名前空間にマップされます。
- version Ignored.
xs:schema> の内容を <する
- サポート対象を含む。wsutil では、コンパイル時に必要なすべての定義を入力ファイルとして使用できる必要があります。
- 再定義無視します。 wsutil はこれをサポートしていません。
- インポートがサポートされています。wsutil では、コンパイル時に必要なすべての定義を入力ファイルとして使用できる必要があります。
- simpleType Supported - 後述の単純型セクションを参照してください。
- complexType Supported - 'complexType' セクションを参照
- group Ignored.
- attributeGroup 無視されます。
- element Supported;はグローバル要素定義にマップされます。
- サポートされている属性。はグローバル属性定義にマップされます。
- notation 無視
複合型
<xs:complexType>で表される複合型は、単純型または複合型の制限、単純型、配列、または構造体の拡張です。 単純型の拡張では、継承がなく、xsi:type のサポートがないことに注意してください。
<xs:complexType> 属性
- abstract サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- block サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- final サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- id 無視されます。
- サポートされていない機能に関する警告を生成し、true の場合はWS_XML_BUFFER構造にフォールバックします。
- name サポートされ、構造体の型名にマップされます。
<xs:complexType> コンテンツ
これは構造体の型定義です。 complexContent の制限はサポートされていません。
- complexContent 複雑なコンテンツ拡張機能をサポートします。 構造体の継承にマップされます。
- group 現在、WS_XML_BUFFER フィールドを使用して構造にフォールバックします。 下の粒子に従って支持することができる。
- 選択は共用体としてサポートされています。 これはデータ コントラクトではサポートされていません。
- sequence Supported - 構造体のフィールドにマップ
- 属性は、'prohibited' の 1 つの例外でサポートされています。 "禁止" の場合は、WS_XML_BUFFERを使用して構造体にフォールバックします。
- attributeGroup がサポートされています - 属性のシーケンスにマップされます
- anyAttribute Ignored
- AttributeGroupRef Supported - 属性のシーケンスにマップされます。
- GroupRef 現在、WS_XML_BUFFER フィールドを持つ構造体にフォールバックします。 下のグループに従ってサポートできます。
- サポートされている任意のマップXML_BUFFER
- (空白) サポートされている空の構造体の説明にマップし、構造体は生成されません。
複合型で xs:sequence> を <する: 内容
wsutil は minOccurs = 1 と maxOccurs = 1 のシーケンスのみを完全にサポートします。それ以外の場合、複合型は現在、WS_XML_BUFFERにバックアップされます。 これは、構造体の配列としてサポートできます。
- element Supported;各インスタンスは、構造体内のフィールドにマップされます。
- グループ フォールバック。complexType はWS_XML_BUFFERへのフォールバックです。
- すべてのフォールバック。complexType はWS_XML_BUFFERへのフォールバックです。
- 選択肢がサポートされています。和集合フィールドにマップします。
- シーケンス フォールバック。complexType はWS_XML_BUFFERへのフォールバックです。
- サポートされている任意の;XML_BUFFERにマップされます。
- (空白) がサポートされています。属性がない場合は、complexType を空の構造体にすることができます。
元素
<xs:element>は、3 つのコンテキストで発生する可能性があります。
- 通常の構造体のフィールドを記述する <xs:sequence>内で発生する可能性があります。 この場合、maxOccurs 属性は 1 である必要があります。 minOccurs が 0 の場合、フィールドは省略可能です。
- これは、配列のフィールドを記述する <xs:sequence>内で発生する可能性があります。 この場合、maxOccurs 属性は 1 より大きいか、'無制限' である必要があります。
- これは、グローバル要素の説明として <xs:schema> 内で発生する可能性があります。
<xs:sequence> 内で xs:element> を <するか、構造体のフィールドとして xs:choice> を <します
- ref サポートされています。グローバル要素への参照に解決されました。
- name Supported, maps to field name.
- サポートされている型。フィールド型にマップされます。 詳細については、「型マッピング」を参照してください。 指定されていない場合 (および要素に匿名型が含まれていない場合)、xs:anyType が想定されます。
- block サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- 既定では、サポートされていない機能に関する警告を生成します。コード生成は変更されません。
- サポートされていない機能に関する警告を生成し、コード生成を変更しない問題を修正しました。
- フォームは無視されます。 シリアル化レイヤーでは、修飾フォームと非修飾フォームの両方がサポートされています。
- id 無視されます。
- maxOccurs が 1 の場合、1 つのデータ フィールドにマップされます。 maxOccurs が 1 より大きい場合、配列フィールド (繰り返し要素) にマップされます。
- minOccurs if 0, the field options is set to FIELD_OPTIONAL, if nillable is not set.
- nillable フィールドは nillable です。 詳細については、「シリアル化」を参照してください。
グローバル要素として xs:element> を <する: 属性
minOccurs 属性と maxOccurs 属性は、グローバル要素の説明として無効です。 アプリケーションでは、シリアル化レイヤーまたはチャネル レイヤーで生成された要素の説明を直接使用できます。
- abstract サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- block サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- 既定では、サポートされていない機能に関する警告を生成します。コード生成は変更されません。
- final サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- サポートされていない機能に関する警告を生成し、コード生成を変更しない問題を修正しました。
- id 無視されます。
- name Supported-map to name of the global element description, and it is the base for the anonymous type when specified.
- nillable Ignored-application は、右フラグを使用して呼び出す必要があります。
- WS_XML_BUFFERが設定されている構造体への substitutionGroup フォールバック。 wsutil は、substitutionGroup をサポートしていません。
- type Supported and map to the type of the element.
グローバル要素として xs:element> を <: contents
- simpleType Supported;は型定義にマップされます。
- complexType がサポートされています。は複合型にマップされます。
- サポートされていない機能に関する一意の警告を生成します。コード生成に変更はありません。 wsutil は要素制約をサポートしていません。
- key サポートされていない機能に関する警告を生成します。コード生成は変更されません。 wsutil は要素制約をサポートしていません。
- keyref サポートされていない機能に関する警告を生成します。コード生成に変更はありません。 wsutil は要素制約をサポートしていません。
- (空白)サポート;型指定のない要素は xs:anyType として扱われます。
単純型
<xs:simpleType> 属性
- 最後に、サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- Id は無視されます
- サポートされている名前。型名にマップされます。
<xs:simpleType> の内容
- 制限がサポートされ、列挙型または範囲にマップされます。 「xs:simpleType restrictions」セクションを参照してください。
- サポートされていない機能に関する警告の生成、XML_BUFFERへのフォールバックを一覧表示します。
- Union Generate warning about unsupported feature, fallback to XML_BUFFER.
単純型の制限
特定のファセットは、範囲と列挙型のサポートを可能にするために、整数型と文字列型で許可されます。
列挙型のサポート
<xs:enumeration> 文字列の基本型に対する単純型の制限は列挙型として扱われます。 この場合、Base 属性は文字列型でなければなりません。 列挙の場合、他のすべてのファセットは無視されます。
単純型のサポートの範囲
一部のファセットは、型で有効な範囲をサポートする単純型でサポートされています。 整数型と float/double 型の制限を次に示します。 他のファセットを持つ単純型は、WS_STRING型にフォールバックされます
- minExclusive Supported
- minInclusive Supported
- maxExclusive Supported
- maxInclusive Supported
- totalDigits サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- fractionDigits サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- length サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- minLength サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- maxLength サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- enumeration サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- whiteSpace サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- pattern サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- (空白)サポート。
文字列の minLength と maxLength は現在サポートされていませんが、サポートするのが望ましい機能です。
継承
Wsutil では、複合型の継承がサポートされています。つまり、構造体は、C++ のインターフェイス継承と同様に、別の構造体から継承できます。 これは、xs:complexContentExtension><によって行われます。 <xs:simpleContentExtension> はサポートされていますが、型の継承ではなく、基本型が最初のフィールドとしてプレーン構造体として生成されます。
型/プリミティブ マッピング
XML で NCNames から変換する場合は、識別子を正規化する必要があります。 文字列は nillable です。ポインター型は nillable です。整数型と float/double は nillable で、defaultValue は 0 に設定されています。