XmlSchema Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представление xml-схемы в памяти, указанное в xml-схеме W3C(W3C), часть 1. Структуры и XML-схема, часть 2: типы данных].
public ref class XmlSchema
public ref class XmlSchema : System::Xml::Schema::XmlSchemaObject
public class XmlSchema
public class XmlSchema : System.Xml.Schema.XmlSchemaObject
type XmlSchema = class
type XmlSchema = class
inherit XmlSchemaObject
Public Class XmlSchema
Public Class XmlSchema
Inherits XmlSchemaObject
- Наследование
-
XmlSchema
- Наследование
Примеры
В следующем примере создается определение схемы.
using System;
using System.Xml;
using System.Xml.Schema;
class XMLSchemaExamples
{
public static void Main()
{
XmlSchema schema = new XmlSchema();
// <xs:element name="cat" type="xs:string"/>
XmlSchemaElement elementCat = new XmlSchemaElement();
schema.Items.Add(elementCat);
elementCat.Name = "cat";
elementCat.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="dog" type="xs:string"/>
XmlSchemaElement elementDog = new XmlSchemaElement();
schema.Items.Add(elementDog);
elementDog.Name = "dog";
elementDog.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="redDog" substitutionGroup="dog" />
XmlSchemaElement elementRedDog = new XmlSchemaElement();
schema.Items.Add(elementRedDog);
elementRedDog.Name = "redDog";
elementRedDog.SubstitutionGroup = new XmlQualifiedName("dog");
// <xs:element name="brownDog" substitutionGroup ="dog" />
XmlSchemaElement elementBrownDog = new XmlSchemaElement();
schema.Items.Add(elementBrownDog);
elementBrownDog.Name = "brownDog";
elementBrownDog.SubstitutionGroup = new XmlQualifiedName("dog");
// <xs:element name="pets">
XmlSchemaElement elementPets = new XmlSchemaElement();
schema.Items.Add(elementPets);
elementPets.Name = "pets";
// <xs:complexType>
XmlSchemaComplexType complexType = new XmlSchemaComplexType();
elementPets.SchemaType = complexType;
// <xs:choice minOccurs="0" maxOccurs="unbounded">
XmlSchemaChoice choice = new XmlSchemaChoice();
complexType.Particle = choice;
choice.MinOccurs = 0;
choice.MaxOccursString = "unbounded";
// <xs:element ref="cat"/>
XmlSchemaElement catRef = new XmlSchemaElement();
choice.Items.Add(catRef);
catRef.RefName = new XmlQualifiedName("cat");
// <xs:element ref="dog"/>
XmlSchemaElement dogRef = new XmlSchemaElement();
choice.Items.Add(dogRef);
dogRef.RefName = new XmlQualifiedName("dog");
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallbackOne);
schemaSet.Add(schema);
schemaSet.Compile();
XmlSchema compiledSchema = null;
foreach (XmlSchema schema1 in schemaSet.Schemas())
{
compiledSchema = schema1;
}
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
compiledSchema.Write(Console.Out, nsmgr);
}
public static void ValidationCallbackOne(object sender, ValidationEventArgs args)
{
Console.WriteLine(args.Message);
}
}
Option Explicit On
Option Strict On
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
Public Shared Sub Main()
Dim schema As New XmlSchema()
' <xs:element name="cat" type="xs:string"/>
Dim elementCat As New XmlSchemaElement()
schema.Items.Add(elementCat)
elementCat.Name = "cat"
elementCat.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="dog" type="xs:string"/>
Dim elementDog As New XmlSchemaElement()
schema.Items.Add(elementDog)
elementDog.Name = "dog"
elementDog.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="redDog" substitutionGroup="dog" />
Dim elementRedDog As New XmlSchemaElement()
schema.Items.Add(elementRedDog)
elementRedDog.Name = "redDog"
elementRedDog.SubstitutionGroup = New XmlQualifiedName("dog")
' <xs:element name="brownDog" substitutionGroup ="dog" />
Dim elementBrownDog As New XmlSchemaElement()
schema.Items.Add(elementBrownDog)
elementBrownDog.Name = "brownDog"
elementBrownDog.SubstitutionGroup = New XmlQualifiedName("dog")
' <xs:element name="pets">
Dim elementPets As New XmlSchemaElement()
schema.Items.Add(elementPets)
elementPets.Name = "pets"
' <xs:complexType>
Dim complexType As New XmlSchemaComplexType()
elementPets.SchemaType = complexType
' <xs:choice minOccurs="0" maxOccurs="unbounded">
Dim choice As New XmlSchemaChoice()
complexType.Particle = choice
choice.MinOccurs = 0
choice.MaxOccursString = "unbounded"
' <xs:element ref="cat"/>
Dim catRef As New XmlSchemaElement()
choice.Items.Add(catRef)
catRef.RefName = New XmlQualifiedName("cat")
' <xs:element ref="dog"/>
Dim dogRef As New XmlSchemaElement()
choice.Items.Add(dogRef)
dogRef.RefName = New XmlQualifiedName("dog")
Dim schemaSet As New XmlSchemaSet()
AddHandler schemaSet.ValidationEventHandler, AddressOf ValidationCallbackOne
schemaSet.Add(schema)
schemaSet.Compile()
Dim compiledSchema As XmlSchema = Nothing
For Each schema1 As XmlSchema In schemaSet.Schemas()
compiledSchema = schema1
Next
Dim nsmgr As New XmlNamespaceManager(New NameTable())
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema")
compiledSchema.Write(Console.Out, nsmgr)
End Sub
Public Shared Sub ValidationCallbackOne(ByVal sender As Object, ByVal args As ValidationEventArgs)
Console.WriteLine(args.Message)
End Sub
End Class
Следующий XML-файл создается для предыдущего примера кода.
<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="cat" type="xs:string"/>
<xs:element name="dog" type="xs:string"/>
<xs:element name="redDog" type="xs:string" substitutionGroup="dog"/>
<xs:element name="brownDog" type="xs:string" substitutionGroup ="dog" />
<xs:element name="pets">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="cat"/>
<xs:element ref="dog"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Комментарии
Это важно
- Не используйте схемы из неизвестных или ненадежных источников или расположений. Это приведет к компрометации безопасности кода.
- XML-схемы (включая встроенные схемы) по сути уязвимы для атак типа "отказ в обслуживании"; Не принимать их в ненадежных сценариях.
- Исключения, возникающие в результате использования XmlSchema класса, например XmlSchemaException класса, могут содержать конфиденциальную информацию, которая не должна предоставляться в ненадежных сценариях. Например, свойство SourceUri объекта XmlSchemaException возвращает URI, указывающий путь к файлу схемы, который вызвал исключение. Свойство SourceUri не должно быть предоставлено в ненадежных сценариях. Исключения должны обрабатываться должным образом, поэтому эта конфиденциальная информация не предоставляется в ненадежных сценариях.
Конструкторы
| Имя | Описание |
|---|---|
| XmlSchema() |
Инициализирует новый экземпляр класса XmlSchema. |
Поля
| Имя | Описание |
|---|---|
| InstanceNamespace |
Пространство имен экземпляра xml-схемы. Это поле является константой. |
| Namespace |
Пространство имен схемы XML. Это поле является константой. |
Свойства
| Имя | Описание |
|---|---|
| AttributeFormDefault |
Возвращает или задает форму атрибутов, объявленных в целевом пространстве имен схемы. |
| AttributeGroups |
Возвращает значение после компиляции схемы всех глобальных групп атрибутов в схеме. |
| Attributes |
Возвращает значение после компиляции схемы для всех атрибутов в схеме. |
| BlockDefault |
Возвращает или задает атрибут, который задает |
| ElementFormDefault |
Возвращает или задает форму для элементов, объявленных в целевом пространстве имен схемы. |
| Elements |
Возвращает значение после компиляции схемы для всех элементов в схеме. |
| FinalDefault |
Возвращает или задает атрибут, который задает |
| Groups |
Возвращает значение после компиляции схемы всех групп в схеме. |
| Id |
Возвращает или задает идентификатор строки. |
| Includes |
Возвращает коллекцию включенных и импортированных схем. |
| IsCompiled |
Указывает, компилируется ли схема. |
| Items |
Возвращает коллекцию элементов схемы в схеме и используется для добавления новых типов элементов на |
| LineNumber |
Возвращает или задает номер строки в файле, к которому |
| LinePosition |
Получает или задает позицию строки в файле, к которому |
| Namespaces |
Возвращает или задает XmlSerializerNamespaces для использования с этим объектом схемы. (Унаследовано от XmlSchemaObject) |
| Notations |
Возвращает значение после компиляции схемы для всех нотации в схеме. |
| Parent |
Возвращает или задает родительский элемент этого XmlSchemaObjectэлемента. (Унаследовано от XmlSchemaObject) |
| SchemaTypes |
Возвращает значение после компиляции схемы всех типов схем в схеме. |
| SourceUri |
Возвращает или задает исходное расположение файла, загруженного схемой. (Унаследовано от XmlSchemaObject) |
| TargetNamespace |
Возвращает или задает универсальный идентификатор ресурса (URI) целевого пространства имен схемы. |
| UnhandledAttributes |
Возвращает или задает квалифицированные атрибуты, которые не принадлежат целевому пространству имен схемы. |
| Version |
Возвращает или задает версию схемы. |
Методы
| Имя | Описание |
|---|---|
| Compile(ValidationEventHandler, XmlResolver) |
Устаревшие..
Устаревшие..
Устаревшие..
Компилирует объектную модель XML-схемы (SOM) в сведения о схеме для проверки. Используется для проверки синтаксической и семантической структуры программно созданного SOM. Проверка семантики выполняется во время компиляции. |
| Compile(ValidationEventHandler) |
Устаревшие..
Устаревшие..
Устаревшие..
Компилирует объектную модель XML-схемы (SOM) в сведения о схеме для проверки. Используется для проверки синтаксической и семантической структуры программно созданного SOM. Проверка семантики выполняется во время компиляции. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| Read(Stream, ValidationEventHandler) |
Считывает XML-схему из предоставленного потока. |
| Read(TextReader, ValidationEventHandler) |
Считывает XML-схему из предоставленного TextReaderобъекта. |
| Read(XmlReader, ValidationEventHandler) |
Считывает XML-схему из предоставленного XmlReaderобъекта. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| Write(Stream, XmlNamespaceManager) |
Записывает XML-схему в предоставленный Stream с помощью указанного XmlNamespaceManager . |
| Write(Stream) |
Записывает XML-схему в предоставленный поток данных. |
| Write(TextWriter, XmlNamespaceManager) |
Записывает XML-схему в предоставленный TextWriterобъект. |
| Write(TextWriter) |
Записывает XML-схему в предоставленный TextWriterобъект. |
| Write(XmlWriter, XmlNamespaceManager) |
Записывает XML-схему в предоставленный XmlWriterобъект. |
| Write(XmlWriter) |
Записывает XML-схему в предоставленный XmlWriterобъект. |