XmlSchemaInference Класс

Определение

Выводит схему языка определения XML-схемы (XSD) из XML-документа. Класс XmlSchemaInference не может быть унаследован.

public ref class XmlSchemaInference sealed
public sealed class XmlSchemaInference
type XmlSchemaInference = class
Public NotInheritable 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);
}
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>

Комментарии

Important

  • Не используйте схемы из неизвестных или ненадежных источников или расположений. Это приведет к компрометации безопасности кода.
  • XML-схемы (включая встроенные схемы) по сути уязвимы для атак типа "отказ в обслуживании"; Не принимать их в ненадежных сценариях.
  • Сообщения об ошибках проверки схемы и исключения могут предоставлять конфиденциальные сведения о модели содержимого или пути URI к файлу схемы. Будьте осторожны, чтобы не предоставлять эту информацию ненадежным вызывающим абонентам.

Класс XmlSchemaInference в System.Xml.Schema пространстве имен позволяет выводить схему языка определения схемы XML (XSD) из структуры XML-документа. Класс XmlSchemaInference выводит XML-схему, которая может проверить XML-документ.

Класс XmlSchemaInference поддерживает стандарты XML и XML-схем W3C. Его можно использовать для вывода новой схемы или уточнения существующей схемы.

Конструкторы

Имя Описание
XmlSchemaInference()

Инициализирует новый экземпляр класса XmlSchemaInference.

Свойства

Имя Описание
Occurrence

Возвращает или задает XmlSchemaInference.InferenceOption значение, влияющее на объявления вхождения схемы, выводимое из XML-документа.

TypeInference

Возвращает или задает XmlSchemaInference.InferenceOption значение, которое влияет на типы, полученные из XML-документа.

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
InferSchema(XmlReader, XmlSchemaSet)

Выводит схему языка определения схемы XML (XSD) из XML-документа, содержащегося в XmlReader указанном объекте, и обновляет выводимую схему с помощью существующей схемы в XmlSchemaSet объекте, указанном с тем же целевым пространством имен.

InferSchema(XmlReader)

Содержит схему языка определения XML-схемы (XSD) из XML-документа, содержащегося в указанном объекте XmlReader .

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к