XmlSchemaInference クラス


XML ドキュメントから XML スキーマ定義言語 (XSD: XML Schema Definition Language) スキーマを推論します。Infers an XML Schema Definition Language (XSD) schema from an XML document. XmlSchemaInference クラスは継承できません。The XmlSchemaInference class cannot be inherited.

public ref class XmlSchemaInference sealed
public sealed class XmlSchemaInference
type XmlSchemaInference = class
Public NotInheritable Class XmlSchemaInference

この例では、入力として XML ファイルを受け取り、XML サンプルを検証できるスキーマを生成します。This example takes an XML file as input, and generates a schema that can validate the example XML.

XmlReader^ reader = XmlReader::Create("contosoBooks.xml");
XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
XmlSchemaInference^ schema = gcnew XmlSchemaInference();

schemaSet = schema->InferSchema(reader);

for each (XmlSchema^ s in schemaSet->Schemas())
XmlReader reader = XmlReader.Create("contosoBooks.xml");
XmlSchemaSet schemaSet = new XmlSchemaSet();
XmlSchemaInference schema = new XmlSchemaInference();

schemaSet = schema.InferSchema(reader);

foreach (XmlSchema s in schemaSet.Schemas())
Dim reader As XmlReader = XmlReader.Create("contosoBooks.xml")
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
Dim schema As XmlSchemaInference = New XmlSchemaInference()

schemaSet = schema.InferSchema(reader)

For Each s As XmlSchema In schemaSet.Schemas()

入力 XML ファイルを次に示します。The following is the input XML file.

<bookstore xmlns="http://www.contoso.com/books">
  <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
    <title>The Autobiography of Benjamin Franklin</title>
  <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
  <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
    <title>The Gorgias</title>

XML ドキュメントから推論されるスキーマを次に示します。The following is the schema inferred from the XML document.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="bookstore">
                <xs:element maxOccurs="unbounded" name="book">
                            <xs:element name="title" type="xs:string" />
                            <xs:element name="author">
                                        <xs:element minOccurs="0" name="name" type="xs:string" />
                                        <xs:element minOccurs="0" name="first-name" type="xs:string" />
                                        <xs:element minOccurs="0" name="last-name" type="xs:string" />
                            <xs:element name="price" type="xs:decimal" />
                        <xs:attribute name="genre" type="xs:string" use="required" />
                        <xs:attribute name="publicationdate" type="xs:date" use="required" />
                        <xs:attribute name="ISBN" type="xs:string" use="required" />



  • 不明または信頼できないソースまたは場所のスキーマは使用しないでください。Do not use schemas from unknown or untrusted sources or locations. そうすることで、コードのセキュリティが損なわれます。Doing so will compromise the security of your code.
  • XML スキーマ (インラインスキーマを含む) は、サービス拒否攻撃に対して本質的に脆弱です。信頼されていないシナリオでは受け入れないでください。XML schemas (including inline schemas) are inherently vulnerable to denial of service attacks; do not accept them in untrusted scenarios.
  • スキーマ検証エラーメッセージと例外によって、コンテンツモデルまたはスキーマファイルへの URI パスに関する機密情報が公開される場合があります。Schema validation error messages and exceptions may expose sensitive information about the content model or URI paths to the schema file. この情報を信頼されていない呼び出し元に公開しないように注意してください。Be careful not to expose this information to untrusted callers.

XmlSchemaInference名前空間のクラスを使用すると、xml System.Xml.Schema ドキュメントの構造から Xml スキーマ定義言語 (XSD) スキーマを推論できます。The XmlSchemaInference class in the System.Xml.Schema namespace allows you to infer an XML Schema Definition Language (XSD) schema from the structure of an XML document. XmlSchemaInference クラスは XML ドキュメントの検証に使える XML スキーマを出力します。The XmlSchemaInference class outputs an XML schema that can validate the XML document.

クラスでは、 XmlSchemaInference W3C XML および Xml スキーマ標準がサポートされています。The XmlSchemaInference class supports the W3C XML and XML Schemas standards. 新しいスキーマを推測したり、既存のスキーマを調整したりするために使用できます。It can be used to infer a new schema or to refine an existing schema.



XmlSchemaInference クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlSchemaInference class.



XML ドキュメントから推論されるスキーマ出現宣言に影響する XmlSchemaInference.InferenceOption 値を取得または設定します。Gets or sets the XmlSchemaInference.InferenceOption value that affects schema occurrence declarations inferred from the XML document.


XML ドキュメントから推論される型に影響を与える XmlSchemaInference.InferenceOption 値を取得または設定します。Gets or sets the XmlSchemaInference.InferenceOption value that affects types inferred from the XML document.



指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

指定された XmlReader オブジェクトに格納されている XML ドキュメントから XML スキーマ定義言語 (XSD) スキーマを推論します。Infers an XML Schema Definition Language (XSD) schema from the XML document contained in the XmlReader object specified.

InferSchema(XmlReader, XmlSchemaSet)

指定された XmlReader オブジェクトに格納されている XML ドキュメントから XML スキーマ定義言語 (XSD) スキーマを推論し、同じターゲット名前空間で指定された XmlSchemaSet オブジェクト内の既存のスキーマを使用して、推論されたスキーマを詳細に指定します。Infers an XML Schema Definition Language (XSD) schema from the XML document contained in the XmlReader object specified, and refines the inferred schema using an existing schema in the XmlSchemaSet object specified with the same target namespace.


現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)