Restriction 要素のバインディング サポート

このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 Windows Communication Foundation.

.NET Framework では、<restriction> 要素のバインディングを一部サポートしています。

.NET Framework で完全に表現できるバインディングが用意されている型制限は、文字列ベースの単純型の列挙型だけです。

説明

XML スキーマ定義言語を使用すると、拡張および制限の両方の方法で、基本型から新しい型を派生できます。拡張は、複合型を派生させるために、常に使用されます。制限は、通常は単純型を派生させるために使用されますが、複合型および単純型の両方を派生させるために使用できます。

XML スキーマ型拡張は、.NET Framework のクラス定義によって常に完全に表現されますが、バインディングが存在する型制限は、XPath simpleType/restriction/enumeration で特定される単純型の列挙型だけです。さらに、<enumeration> 要素は、文字列ベースの単純型に適用された場合にだけバインドされます。

simpleType/restriction 要素の他のすべての子は (または列挙型が文字列ベースでない型に適用される場合は)、次のようになります。

  • XML スキーマ ドキュメントからソース コードを生成するとき、Xsd.exe は、制限を無視して、基本の単純型に対応する .NET Framework 型だけを生成します。

  • XmlSerializer クラスでは、オブジェクトを XML にシリアル化したり XML から逆シリアル化したりするときに、制限が無視されます。

複合型では、XPath complexType/complexContent/restriction によって制限に複合コンテンツが含まれる場合、Xsd.exe は基本クラスから継承された空のクラスを生成します。XmlSerializer クラスは、制限を無視します。Xsd.exe は、XPath complexType/simpleContent/restriction によって制限に単純コンテンツが含まれる場合、この制限を認識できません。

制限ではバインディングが限定的にサポートされていますが、スキーマ オブジェクト モデルではこれを完全に表現できます。単純型の制限には、XmlSchemaSimpleTypeRestriction クラスがあります。複合型の制限には、2 種類それぞれに対して、XmlSchemaComplexContentRestriction クラスおよび XmlSchemaSimpleContentRestriction クラスがあります。また、XmlSchemaSimpleTypeRestriction および XmlSchemaSimpleContentRestriction の両方には、Facets プロパティがあります。このプロパティは、simpleType/restriction または simpleContent/restriction の任意の子を表すオブジェクトを保持します。

これらのクラスのオブジェクトは、XML スキーマ仕様で用意される任意の型制限を使用するようなスキーマ オブジェクト モデルをプログラミングで作成するときに使用できます。このようなモデルは、XML スキーマ ドキュメントからシリアル化およびシリアル化解除を行うことができます。

また、XmlValidatingReader オブジェクトは、制限を使用する XML スキーマに対して XML インスタンス ドキュメントを検証するために使用することもできます。

使用可能な属性 バインディング サポート

base

<restriction> 要素には、base 属性が必要です。この属性の値は、基本データ型の修飾名です。

制限で単純型を定義する場合、base 属性の値によって、Xsd.exe が制限を認識するかどうかが決定されます。文字列にバインドする XML スキーマ データ型が base である場合、Xsd.exe では、enum 型を生成します。それ以外の場合、Xsd.exe では、base 値にバインドされた .NET Framework 型のフィールドを生成します。

制限で複合型を定義するときの base 属性の使用方法については、前の説明を参照してください。

id

Xsd.exe ユーティリティでは、一意な識別子を提供するための id 属性は無視されます。

使用可能な親要素 : <complexContent><simpleContent><simpleType>

使用可能な子要素 : <all><annotation><anyAttribute><attribute><attributeGroup><choice><enumeration><fractionDigits><group><length><maxExclusive><maxInclusive><maxLength><minExclusive><minInclusive><minLength><pattern><sequence><simpleType><totalDigits><whiteSpace>

参照

リファレンス

XmlSchemaComplexContentRestriction
XmlSchemaSimpleContentRestriction
XmlSchemaSimpleTypeRestriction