XmlSchemaUnique クラス
アセンブリ: System.Xml (system.xml.dll 内)



XmlSchemaUnique クラスを使用する例を次に示します。
Imports System Imports System.Xml Imports System.Xml.Schema Class XMLSchemaExamples Public Shared Sub Main() Dim schema As New XmlSchema() ' <xs:complexType name="customerOrderType"> Dim customerOrderType As New XmlSchemaComplexType() customerOrderType.Name = "customerOrderType" ' <xs:sequence> Dim sequence1 As New XmlSchemaSequence() ' <xs:element name="item" minOccurs="0" maxOccurs="unbounded"> Dim item As New XmlSchemaElement() item.MinOccurs = 0 item.MaxOccursString = "unbounded" item.Name = "item" ' <xs:complexType> Dim ct1 As New XmlSchemaComplexType() ' <xs:attribute name="itemID" type="xs:string"/> Dim itemID As New XmlSchemaAttribute() itemID.Name = "itemID" itemID.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema") ' </xs:complexType> ct1.Attributes.Add(itemID) ' </xs:element> item.SchemaType = ct1 ' </xs:sequence> sequence1.Items.Add(item) customerOrderType.Particle = sequence1 ' <xs:attribute name="CustomerID" type="xs:string"/> Dim CustomerID As New XmlSchemaAttribute() CustomerID.Name = "CustomerID" CustomerID.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema") customerOrderType.Attributes.Add(CustomerID) ' </xs:complexType> schema.Items.Add(customerOrderType) ' <xs:element name="ordersByCustomer"> Dim ordersByCustomer As New XmlSchemaElement() ordersByCustomer.Name = "ordersByCustomer" ' <xs:complexType> Dim ct2 As New XmlSchemaComplexType() ' <xs:sequence> Dim sequence2 As New XmlSchemaSequence() ' <xs:element name="customerOrders" type="customerOrderType" minOccurs="0" maxOccurs="unbounded" /> Dim customerOrders As New XmlSchemaElement() customerOrders.MinOccurs = 0 customerOrders.MaxOccursString = "unbounded" customerOrders.Name = "customerOrders" customerOrders.SchemaTypeName = New XmlQualifiedName("customerOrderType", "") ' </xs:sequence> sequence2.Items.Add(customerOrders) ' </xs:complexType> ct2.Particle = sequence2 ordersByCustomer.SchemaType = ct2 ' <xs:unique name="oneCustomerOrdersforEachCustomerID"> Dim element_unique As New XmlSchemaUnique() element_unique.Name = "oneCustomerOrdersforEachCustomerID" ' <xs:selector xpath="customerOrders"/> element_unique.Selector = New XmlSchemaXPath() element_unique.Selector.XPath = "customerOrders" ' <xs:field xpath="@customerID"/> Dim field As New XmlSchemaXPath() field.XPath = "@customerID" ' </xs:unique> element_unique.Fields.Add(field) ordersByCustomer.Constraints.Add(element_unique) ' </xs:element> schema.Items.Add(ordersByCustomer) Dim schemaSet As New XmlSchemaSet() AddHandler schemaSet.ValidationEventHandler, AddressOf ValidationCallbackOne schemaSet.Add(schema) schemaSet.Compile() Dim compiledSchema As XmlSchema = Nothing For Each schema1 As XmlSchema In schemaSet.Schemas() compiledSchema = schema1 Next Dim nsmgr As New XmlNamespaceManager(New NameTable()) nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema") compiledSchema.Write(Console.Out, nsmgr) End Sub Public Shared Sub ValidationCallbackOne(ByVal sender As Object, ByVal args As ValidationEventArgs) Console.WriteLine(args.Message) End Sub End Class
using System; using System.Xml; using System.Xml.Schema; class XMLSchemaExamples { public static void Main() { XmlSchema schema = new XmlSchema(); // <xs:complexType name="customerOrderType"> XmlSchemaComplexType customerOrderType = new XmlSchemaComplexType(); customerOrderType.Name = "customerOrderType"; // <xs:sequence> XmlSchemaSequence sequence1 = new XmlSchemaSequence(); // <xs:element name="item" minOccurs="0" maxOccurs="unbounded"> XmlSchemaElement item = new XmlSchemaElement(); item.MinOccurs = 0; item.MaxOccursString = "unbounded"; item.Name = "item"; // <xs:complexType> XmlSchemaComplexType ct1 = new XmlSchemaComplexType(); // <xs:attribute name="itemID" type="xs:string"/> XmlSchemaAttribute itemID = new XmlSchemaAttribute(); itemID.Name = "itemID"; itemID.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema"); // </xs:complexType> ct1.Attributes.Add(itemID); // </xs:element> item.SchemaType = ct1; // </xs:sequence> sequence1.Items.Add(item); customerOrderType.Particle = sequence1; // <xs:attribute name="CustomerID" type="xs:string"/> XmlSchemaAttribute CustomerID = new XmlSchemaAttribute(); CustomerID.Name = "CustomerID"; CustomerID.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema"); customerOrderType.Attributes.Add(CustomerID); // </xs:complexType> schema.Items.Add(customerOrderType); // <xs:element name="ordersByCustomer"> XmlSchemaElement ordersByCustomer = new XmlSchemaElement(); ordersByCustomer.Name = "ordersByCustomer"; // <xs:complexType> XmlSchemaComplexType ct2 = new XmlSchemaComplexType(); // <xs:sequence> XmlSchemaSequence sequence2 = new XmlSchemaSequence(); // <xs:element name="customerOrders" type="customerOrderType" minOccurs="0" maxOccurs="unbounded" /> XmlSchemaElement customerOrders = new XmlSchemaElement(); customerOrders.MinOccurs = 0; customerOrders.MaxOccursString = "unbounded"; customerOrders.Name = "customerOrders"; customerOrders.SchemaTypeName = new XmlQualifiedName("customerOrderType", ""); // </xs:sequence> sequence2.Items.Add(customerOrders); // </xs:complexType> ct2.Particle = sequence2; ordersByCustomer.SchemaType = ct2; // <xs:unique name="oneCustomerOrdersforEachCustomerID"> XmlSchemaUnique element_unique = new XmlSchemaUnique(); element_unique.Name = "oneCustomerOrdersforEachCustomerID"; // <xs:selector xpath="customerOrders"/> element_unique.Selector = new XmlSchemaXPath(); element_unique.Selector.XPath = "customerOrders"; // <xs:field xpath="@customerID"/> XmlSchemaXPath field = new XmlSchemaXPath(); field.XPath = "@customerID"; // </xs:unique> element_unique.Fields.Add(field); ordersByCustomer.Constraints.Add(element_unique); // </xs:element> schema.Items.Add(ordersByCustomer); XmlSchemaSet schemaSet = new XmlSchemaSet(); schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallbackOne); schemaSet.Add(schema); schemaSet.Compile(); XmlSchema compiledSchema = null; foreach (XmlSchema schema1 in schemaSet.Schemas()) { compiledSchema = schema1; } XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable()); nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema"); compiledSchema.Write(Console.Out, nsmgr); } public static void ValidationCallbackOne(object sender, ValidationEventArgs args) { Console.WriteLine(args.Message); } }
このコード例に対して生成される XML ファイルを次に示します。
<?xml version="1.0" encoding="IBM437"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="customerOrderType"> <xs:sequence> <xs:element name="item" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="itemID" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="CustomerID" type="xs:string"/> </xs:complexType> <xs:element name="ordersByCustomer"> <xs:complexType> <xs:sequence> <xs:element name="customerOrders" type="customerOrderType" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:unique name="oneCustomerOrdersforEachCustomerID"> <xs:selector xpath="customerOrders"/> <xs:field xpath="@customerID"/> </xs:unique> </xs:element> </xs:schema>

System.Xml.Schema.XmlSchemaObject
System.Xml.Schema.XmlSchemaAnnotated
System.Xml.Schema.XmlSchemaIdentityConstraint
System.Xml.Schema.XmlSchemaUnique


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XmlSchemaUnique コンストラクタ
アセンブリ: System.Xml (system.xml.dll 内)


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XmlSchemaUnique プロパティ

名前 | 説明 | |
---|---|---|
![]() | Annotation | Annotation プロパティを取得または設定します。 ( XmlSchemaAnnotated から継承されます。) |
![]() | Fields | XML Path Language (XPath) 式セレクタの子として適用されるフィールドのコレクションを取得します。 ( XmlSchemaIdentityConstraint から継承されます。) |
![]() | Id | 文字列 ID を取得または設定します。 ( XmlSchemaAnnotated から継承されます。) |
![]() | LineNumber | schema 要素が参照するファイルの行番号を取得または設定します。 ( XmlSchemaObject から継承されます。) |
![]() | LinePosition | schema 要素が参照するファイルの行番号を取得または設定します。 ( XmlSchemaObject から継承されます。) |
![]() | Name | ID 制約の名前を取得または設定します。 ( XmlSchemaIdentityConstraint から継承されます。) |
![]() | Namespaces | このスキーマ オブジェクトと一緒に使用する XmlSerializerNamespaces を取得または設定します。 ( XmlSchemaObject から継承されます。) |
![]() | Parent | この XmlSchemaObject の親を取得または設定します。 ( XmlSchemaObject から継承されます。) |
![]() | QualifiedName | QualifiedName プロパティのコンパイル後の値を保持する ID 制約の限定名を取得します。 ( XmlSchemaIdentityConstraint から継承されます。) |
![]() | Selector | XPath 式 selector 要素を取得または設定します。 ( XmlSchemaIdentityConstraint から継承されます。) |
![]() | SourceUri | スキーマを読み込んだファイルのソース位置を取得または設定します。 ( XmlSchemaObject から継承されます。) |
![]() | UnhandledAttributes | 現在のスキーマのターゲット名前空間に属さない、修飾された属性を取得または設定します。 ( XmlSchemaAnnotated から継承されます。) |

XmlSchemaUnique メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

XmlSchemaUnique メンバ
W3C (World Wide Web Consortium) で指定された XML スキーマの unique 要素を表します。このクラスを使用すると、一連の要素に対して一意性を持つという制約を指定できます。
XmlSchemaUnique データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | Annotation | Annotation プロパティを取得または設定します。(XmlSchemaAnnotated から継承されます。) |
![]() | Fields | XML Path Language (XPath) 式セレクタの子として適用されるフィールドのコレクションを取得します。(XmlSchemaIdentityConstraint から継承されます。) |
![]() | Id | 文字列 ID を取得または設定します。(XmlSchemaAnnotated から継承されます。) |
![]() | LineNumber | schema 要素が参照するファイルの行番号を取得または設定します。(XmlSchemaObject から継承されます。) |
![]() | LinePosition | schema 要素が参照するファイルの行番号を取得または設定します。(XmlSchemaObject から継承されます。) |
![]() | Name | ID 制約の名前を取得または設定します。(XmlSchemaIdentityConstraint から継承されます。) |
![]() | Namespaces | このスキーマ オブジェクトと一緒に使用する XmlSerializerNamespaces を取得または設定します。(XmlSchemaObject から継承されます。) |
![]() | Parent | この XmlSchemaObject の親を取得または設定します。(XmlSchemaObject から継承されます。) |
![]() | QualifiedName | QualifiedName プロパティのコンパイル後の値を保持する ID 制約の限定名を取得します。(XmlSchemaIdentityConstraint から継承されます。) |
![]() | Selector | XPath 式 selector 要素を取得または設定します。(XmlSchemaIdentityConstraint から継承されます。) |
![]() | SourceUri | スキーマを読み込んだファイルのソース位置を取得または設定します。(XmlSchemaObject から継承されます。) |
![]() | UnhandledAttributes | 現在のスキーマのターゲット名前空間に属さない、修飾された属性を取得または設定します。(XmlSchemaAnnotated から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- XmlSchemaUniqueのページへのリンク