XmlSchemaInference Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет схему языка объявления схем XML (XSD — XML Schema Definition Language) на основе документа 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 = 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 (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) |
Определяет схему языка определения схем XML (XSD) на основе документа XML, содержащегося в указанном объекте XmlReader. |
InferSchema(XmlReader, XmlSchemaSet) |
Определяет схему языка определения схем XML (XSD) на основе документа XML, содержащегося в заданном объекте XmlReader, а также уточняет определенную схему, используя существующую схему из объекта XmlSchemaSet, заданную для того же целевого пространства имен. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |