XmlSchemaInference XmlSchemaInference XmlSchemaInference XmlSchemaInference Class

定義

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
継承
XmlSchemaInferenceXmlSchemaInferenceXmlSchemaInferenceXmlSchemaInference

この例は、入力として 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())
      {
          s->Write(Console::Out);
      }
XmlReader reader = XmlReader.Create("contosoBooks.xml");
XmlSchemaSet schemaSet = new XmlSchemaSet();
XmlSchemaInference schema = new XmlSchemaInference();

schemaSet = schema.InferSchema(reader);

foreach (XmlSchema s in schemaSet.Schemas())
{
    s.Write(Console.Out);
}
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()
    s.Write(Console.Out)
Next

次は、入力 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>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
  <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>

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:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" name="book">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="title" type="xs:string" />
                            <xs:element name="author">
                                <xs:complexType>
                                    <xs:sequence>
                                        <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:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="price" type="xs:decimal" />
                        </xs:sequence>
                        <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" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

注釈

重要

  • 不明または信頼できないソースまたは場所からのスキーマを使用しないでください。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クラス、System.Xml.Schema名前空間では、XML ドキュメントの構造から 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() XmlSchemaInference() XmlSchemaInference() XmlSchemaInference()

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

プロパティ

Occurrence Occurrence Occurrence Occurrence

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

TypeInference TypeInference TypeInference TypeInference

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

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
InferSchema(XmlReader) InferSchema(XmlReader) InferSchema(XmlReader) InferSchema(XmlReader)

指定された 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) InferSchema(XmlReader, XmlSchemaSet) InferSchema(XmlReader, XmlSchemaSet) 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.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToString() ToString() ToString() ToString()

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

(Inherited from Object)

適用対象