スキーマのサポート レベル
このセクションでは、スキーマサポートのレベルに関する詳細について説明します。
スキーマでは、次の機能が直接サポートされます。
- 要素のシーケンス。
- 要素型の派生。
- 要素の単純な選択肢 (タグ付き共用体にマップされる要素)。
- 範囲 (最小/最大) を含む 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 無視されます。
- elementFormDefault 無視されます。 これは、非修飾要素が実行時にサポートされるため、dataContract とは異なります。
- finalDefault 無視されます。 final の概念に対する C 言語のサポートはありません。
- id 無視されます。
- targetNamespace サポートされ、サービス名前空間にマップされます。
- version Ignored.
<xs:schema> contents
- サポート対象を含む。wsutil では、コンパイル時に必要なすべての定義を入力ファイルとして使用できる必要があります。
- を再定義無視します。 wsutil はこれをサポートしていません。
- import Supported;wsutil では、コンパイル時に必要なすべての定義を入力ファイルとして使用できる必要があります。
- simpleType Supported - 後述の「単純型」セクションを参照してください。
- complexType Supported- 「complexType」セクションを参照してください
- group Ignored.
- attributeGroup 無視されます。
- 要素がサポートされています。はグローバル要素定義にマップされます。
- 属性がサポートされています。はグローバル属性定義にマップされます。
- 表記 無視
複合型
xs:complexType> で<表される複合型は、単純型または複合型の制限、単純型の拡張、配列または構造体である可能性があります。 単純型の拡張機能では、継承がなく、xsi:type がサポートされていないことに注意してください。
<xs:complexType> 属性
- abstract サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- ブロック サポートされていない機能に関する警告を生成します。コード生成は変更されません。
- 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にサポートされています。 構造体の配列としてサポートできます。
- 要素がサポートされています。各インスタンスは、 構造体内のフィールドにマップされます。
- グループ フォールバック。complexType は、WS_XML_BUFFERへのフォールバックです。
- すべてのフォールバック。complexType は、WS_XML_BUFFERへのフォールバックです。
- 選択肢がサポートされています。union フィールドにマップします。
- シーケンス フォールバック。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:choice> 内の xs:element>
- ref サポートされています。グローバル要素への参照に解決されました。
- name サポートされています。フィールド名にマップされます。
- type Supported, maps to field type. 詳細については、「型マッピング」を参照してください。 指定しない場合 (および要素に匿名型が含まれていない場合)、xs:anyType と見なされます。
- ブロック サポートされていない機能に関する警告を生成します。コード生成は変更されません。
- 既定では、サポートされていない機能に関する警告を生成します。コード生成は変更されません。
- サポートされていない機能に関する警告を生成し、コード生成を変更しない問題を修正しました。
- フォームは無視されます。 シリアル化レイヤーでは、修飾フォームと非修飾フォームの両方がサポートされています。
- 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 サポートされていない機能に関する警告を生成します。コード生成に変更はありません。
- ブロック サポートされていない機能に関する警告を生成します。コード生成は変更されません。
- 既定では、サポートされていない機能に関する警告を生成します。コード生成は変更されません。
- 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 は、右フラグを指定して を呼び出す必要があります。
- substitutionGroup が設定されている場合は、WS_XML_BUFFERを使用して構造体にフォールバックします。 wsutil は、substitutionGroup をサポートしていません。
- type Supported and map to the type of the element.
<グローバル要素としての xs:element> : contents
- simpleType Supported;は型定義にマップされます。
- complexType がサポートされています。は複合型にマップされます。
- unique サポートされていない機能に関する警告を生成します。コード生成は変更されません。 wsutil は要素制約をサポートしていません。
- key サポートされていない機能に関する警告を生成します。コード生成は変更されません。 wsutil は要素制約をサポートしていません。
- keyref サポートされていない機能に関する警告を生成します。コード生成は変更されません。 wsutil は要素制約をサポートしていません。
- (空白)サポート;型指定のない 要素は xs:anyType として扱われます。
単純型
<xs:simpleType> 属性
- 最後に、サポートされていない機能に関する警告を生成します。コード生成は変更されません。
- 無視された ID
- [名前] サポートされています。型名にマップされます。
<xs:simpleType> の内容
- 制限がサポートされています。列挙型または範囲にマップされます。 「xs:simpleType の制限事項」セクションを参照してください。
- リスト サポートされていない機能に関する警告を生成し、XML_BUFFERにフォールバックします。
- Union サポートされていない機能に関する警告を生成し、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 に設定されています。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示