XmlSchemaInference 类  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从 XML 文档中推理出 XML 架构定义语言 (XSD) 架构。 不能继承 XmlSchemaInference 类。
public ref class XmlSchemaInference sealedpublic sealed class XmlSchemaInferencetype XmlSchemaInference = classPublic NotInheritable Class XmlSchemaInference- 继承
- 
				XmlSchemaInference
示例
此示例采用 XML 文件作为输入,并生成可验证示例 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 文件。
<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 | 获取或设置 XmlSchemaInference.InferenceOption 值,该值影响从 XML 文档推理出的架构匹配项声明。 | 
| 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) |