Extensions Extensions Extensions Extensions Class

定義

このクラスには、XSD 検証のための LINQ to XML 拡張メソッドが含まれています。This class contains the LINQ to XML extension methods for XSD validation.

public ref class Extensions abstract sealed
public static class Extensions
type Extensions = class
Public Module Extensions
継承
ExtensionsExtensionsExtensionsExtensions

XSDサンプル XSD ファイル。顧客と注文で XML ドキュメントの検証に使用できるスキーマを含むサンプル XML ファイル。顧客と注文 (LINQ to XML)」。The XSD in Sample XSD File: Customers and Orders contains a schema that can be used to validate the XML document in Sample XML File: Customers and Orders (LINQ to XML). 次の例では、スキーマとドキュメント、ドキュメントを検証、ドキュメントが変更できるように、xs:keyxs:keyrefリレーションシップが有効でないと、もう一度検証を試みます。The following example loads the schema and the document, validates the document, changes the document so that the xs:key and xs:keyref relationship is not valid, and then attempts to validate again.


                XmlSchemaSet schemas = new XmlSchemaSet();  
schemas.Add("", "CustomersOrders.xsd");  

XDocument custOrd = XDocument.Load("CustomersOrders.xml");  

Console.WriteLine("Validating custOrd");  
bool errors = false;  
custOrd.Validate(schemas, (o, e) =>  
                     {  
                         Console.WriteLine("{0}", e.Message);  
                         errors = true;  
                     });  
Console.WriteLine("custOrd {0}", errors ? "did not validate" : "validated");  

// Modify the custOrd tree so that it is no longer valid.  
custOrd.Root.Element("Orders").Element("Order").Element("CustomerID").Value = "AAAAA";  

Console.WriteLine();  
Console.WriteLine("Validating custOrd");  
errors = false;  
custOrd.Validate(schemas, (o, e) =>  
                     {  
                         Console.WriteLine("{0}", e.Message);  
                         errors = true;  
                     });  
Console.WriteLine("custOrd {0}", errors ? "did not validate" : "validated");  

                Dim errors As Boolean = False  

Private Sub XSDErrors(ByVal o As Object, ByVal e As ValidationEventArgs)  
    Console.WriteLine("{0}", e.Message)  
    errors = True  
End Sub  

Sub Main()  
    Dim schemas As XmlSchemaSet = New XmlSchemaSet()  
    schemas.Add("", "CustomersOrders.xsd")  

    Console.WriteLine("Validating custOrd")  
    Dim custOrd As XDocument = XDocument.Load("CustomersOrders.xml")  
    errors = False  
    custOrd.Validate(schemas, AddressOf XSDErrors)  
    Console.WriteLine("custOrd {0}", IIf(errors, "did not validate", "validated"))  

    Console.WriteLine()  
    Console.WriteLine("Validating custOrd")  
    ' Modify the source document so that it will not validate.  
    custOrd.Root.Element("Orders").Element("Order").Element("CustomerID").Value = "AAAAA"  
    errors = False  
    custOrd.Validate(schemas, AddressOf XSDErrors)  
    Console.WriteLine("custOrd {0}", IIf(errors, "did not validate", "validated"))  
End Sub  

この例を実行すると、次の出力が生成されます。This example produces the following output:

Validating custOrd  
custOrd validated  

Validating custOrd  
The key sequence 'AAAAA' in Keyref fails to refer to some key.  
custOrd did not validate  

注釈

このクラスには、検証済み XML ノードのスキーマ検証後の infoset (PSVI) を取得するメソッドも含まれています。This class also contains methods to get the post-schema-validation infoset (PSVI) of a validated XML node.

検証するときに、 XDocumentXElement、またはXAttribute、また、必要に応じて、スキーマ検証後の infoset を使用して、XML ツリーを設定することができます。When you validate an XDocument, XElement, or XAttribute, you can also optionally populate the XML tree with the post-schema-validation infoset. PSVI 情報は型の注釈として追加System.Xml.Schema.XmlSchemaInfoします。PSVI information is added as an annotation of type System.Xml.Schema.XmlSchemaInfo.

メソッド

GetSchemaInfo(XAttribute) GetSchemaInfo(XAttribute) GetSchemaInfo(XAttribute) GetSchemaInfo(XAttribute)

検証済み属性のスキーマ検証後の infoset (PSVI) を取得します。Gets the post-schema-validation infoset (PSVI) of a validated attribute.

GetSchemaInfo(XElement) GetSchemaInfo(XElement) GetSchemaInfo(XElement) GetSchemaInfo(XElement)

検証済み要素のスキーマ検証後の infoset (PSVI) を取得します。Gets the post-schema-validation infoset (PSVI) of a validated element.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler) Validate(XDocument, XmlSchemaSet, ValidationEventHandler) Validate(XDocument, XmlSchemaSet, ValidationEventHandler) Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

このメソッドは、XDocumentXmlSchemaSet の XSD に準拠しているかどうかを検証します。This method validates that an XDocument conforms to an XSD in an XmlSchemaSet.

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

このメソッドは、XAttribute が指定した XmlSchemaObject および XmlSchemaSet に準拠しているかどうかを検証します。This method validates that an XAttribute conforms to a specified XmlSchemaObject and an XmlSchemaSet.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean) Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean) Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean) Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

XDocumentXmlSchemaSet の XSD に準拠しているかどうかを検証します。オプションで、スキーマ検証後の infoset (PSVI) を XML ツリーに設定できます。Validates that an XDocument conforms to an XSD in an XmlSchemaSet, optionally populating the XML tree with the post-schema-validation infoset (PSVI).

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

このメソッドは、XElement サブツリーが指定した XmlSchemaObject および XmlSchemaSet に準拠しているかどうかを検証します。This method validates that an XElement sub-tree conforms to a specified XmlSchemaObject and an XmlSchemaSet.

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean)

XAttribute が、指定した XmlSchemaObject および XmlSchemaSet に準拠しているかどうかを検証します。必要に応じて、スキーマ検証後の infoset (PSVI) を XML ツリーに設定できます。Validates that an XAttribute conforms to a specified XmlSchemaObject and an XmlSchemaSet, optionally populating the XML tree with the post-schema-validation infoset (PSVI).

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean)

XElement サブツリーが、指定した XmlSchemaObject および XmlSchemaSet に準拠しているかどうかを検証します。必要に応じて、スキーマ検証後の infoset (PSVI) を XML ツリーに設定できます。Validates that an XElement sub-tree conforms to a specified XmlSchemaObject and an XmlSchemaSet, optionally populating the XML tree with the post-schema-validation infoset (PSVI).

適用対象