英語で読む

次の方法で共有


XmlSchemaInference クラス

定義

XML ドキュメントから XML スキーマ定義言語 (XSD: XML Schema Definition Language) スキーマを推論します。 XmlSchemaInference クラスは継承できません。

public sealed class XmlSchemaInference
継承
XmlSchemaInference

この例では、XML ファイルを入力として受け取り、XML の例を検証できるスキーマを生成します。

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);
}

入力 XML ファイルを次に示します。

<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 ドキュメントから推論されるスキーマを次に示します。

<?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>

注釈

重要

  • 不明または信頼されていないソースまたは場所のスキーマは使用しないでください。 これにより、コードのセキュリティが損なわれます。
  • XML スキーマ (インライン スキーマを含む) は、本質的にサービス拒否攻撃に対して脆弱です。信頼されていないシナリオでは受け入れないでください。
  • スキーマ検証エラー メッセージと例外により、コンテンツ モデルまたは URI パスに関する機密情報がスキーマ ファイルに公開される場合があります。 信頼されていない呼び出し元にこの情報を公開しないように注意してください。

XmlSchemaInference名前空間の System.Xml.Schema クラスを使用すると、XML ドキュメントの構造から XML スキーマ定義言語 (XSD) スキーマを推論できます。 XmlSchemaInference クラスは XML ドキュメントの検証に使える XML スキーマを出力します。

クラスは XmlSchemaInference 、W3C XML および XML スキーマ標準をサポートしています。 新しいスキーマを推論したり、既存のスキーマを絞り込んだりするために使用できます。

コンストラクター

XmlSchemaInference()

XmlSchemaInference クラスの新しいインスタンスを初期化します。

プロパティ

Occurrence

XML ドキュメントから推論されるスキーマ出現宣言に影響する XmlSchemaInference.InferenceOption 値を取得または設定します。

TypeInference

XML ドキュメントから推論される型に影響を与える XmlSchemaInference.InferenceOption 値を取得または設定します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
InferSchema(XmlReader)

指定された XmlReader オブジェクトに格納されている XML ドキュメントから XML スキーマ定義言語 (XSD) スキーマを推論します。

InferSchema(XmlReader, XmlSchemaSet)

指定された XmlReader オブジェクトに格納されている XML ドキュメントから XML スキーマ定義言語 (XSD) スキーマを推論し、同じターゲット名前空間で指定された XmlSchemaSet オブジェクト内の既存のスキーマを使用して、推論されたスキーマを詳細に指定します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1