Name 属性のバインディング サポート
このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 Windows Communication Foundation.
.NET Framework では、name 属性のバインディングをサポートしています。
name 属性の値は、属性が適用される要素に応じて、パブリック クラスまたはフィールドのいずれかの名前に対応します。適切な ***Name プロパティを適用して、Xsd.exe が XSD ドキュメントを生成するときに設定される名前をオーバーライドできます。
XSD ドキュメントからのソースの生成
name 属性は、XML スキーマ ドキュメントからソース コードを生成するときに、Xsd.exe が型バインディングを提供する要素に対して、次のように使用されます。
<attribute>: その属性を表すパブリック クラス フィールドの名前を提供します。フィールドは、System.Xml.Serialization.XmlAttributeAttribute と共に表示されます。
<complexType>: 複合型に対応するクラスの名前を提供します。
<element>: その要素を表すパブリック クラス フィールドの名前を提供します。<element> 要素に、匿名の <complexType> 定義が含まれている場合、その名前は、その複合型に対応するクラスの名前になります。
<simpleType>: 単純型に対応するクラスの名前を提供します。.NET Framework では、(a) 文字列ベース型の列挙型を使用した場合、および (b) 属性として使用されたリストを作成した場合だけ、単純型の派生が可能です。
コーディング規則に準拠するために大文字小文字の変換が行われることはありません。たとえば <complexType> 要素の name 属性に値 testInfo
が設定されている場合、クラスの名前は、先頭が大文字に変更された TestInfo ではなく、testInfo になります。予約されているキーワードと名前が競合する場合は、生成される名前の先頭にアット マーク (@) が付けられます。
.NET Framework では、一意性と参照整合性を確立するために使用される <key>、<keyref>、<unique> の各 XML スキーマ定義言語要素に対するバインディングがありません。したがって、これらの要素における name 属性の表示形式は無視されます。同様に、<notation> 要素には型バインディングがないため、この要素では name 属性が無視されます。
Xsd.exe は、<group> 要素および <attributeGroup> 要素を直接サポートせず、参照が含まれる複合型に対応するクラスへの各参照の内容を拡張するため、グループ名または属性グループ名は無視されます。
クラスからの XSD ドキュメントの生成
Xsd.exe がアセンブリ内の一連のクラスから XSD ドキュメントを生成するとき、対応する name 属性の値を提供する、先に説明したコード コンストラクターを使用します。
また、フィールドだけでなく、パブリック プロパティが <element> 要素および <attribute> 要素に変換されるため、既定では、name 属性値からプロパティ名が作成されます。
代替名、つまり name 属性の値は、次の属性プロパティによって指定できます。
System.Xml.Serialization.XmlAttributeAttribute.AttributeName
System.Xml.Serialization.XmlTypeAttribute.TypeName: 属性が適用されている .NET Framework 型に対応する XSD データ型の名前を変更します。
System.Xml.Serialization.XmlArrayAttribute.ElementName: 配列の親 XML 要素の名前を変更します。
System.Xml.Serialization.XmlArrayItemAttribute.ElementName: 配列エントリに対応する、連続する子要素の名前を変更します。
使用可能なコンテナー要素 : <attribute>、<attributeGroup>、<complexType>、<element>、<group>、<key>、<keyref>、<notation>、<simpleType>、<unique>
参照
リファレンス
System.Xml.Schema.XmlSchemaAttribute.Name
System.Xml.Schema.XmlSchemaAttributeGroup.Name
System.Xml.Schema.XmlSchemaElement.Name
System.Xml.Schema.XmlSchemaGroup.Name
System.Xml.Schema.XmlSchemaType.Name
XmlSchemaComplexType
XmlSchemaSimpleType
System.Xml.Schema.XmlSchemaIdentityConstraint.Name
XmlSchemaKey
XmlSchemaKeyref
XmlSchemaUnique
System.Xml.Schema.XmlSchemaNotation.Name