XmlSchemaElement Класс

Определение

element Представляет элемент из схемы XML, указанной консорциумом W3C. Этот класс является базовым классом для всех типов частиц и используется для описания элемента в XML-документе.

public ref class XmlSchemaElement : System::Xml::Schema::XmlSchemaParticle
public class XmlSchemaElement : System.Xml.Schema.XmlSchemaParticle
type XmlSchemaElement = class
    inherit XmlSchemaParticle
Public Class XmlSchemaElement
Inherits XmlSchemaParticle
Наследование

Примеры

В следующем примере создается element элемент.

using System;
using System.Xml;
using System.Xml.Schema;

class XMLSchemaExamples
{
    public static void Main()
    {

        XmlSchema schema = new XmlSchema();

        // <xs:element name="cat" type="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="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);
    }
}
Imports System.Xml
Imports System.Xml.Schema

Class XMLSchemaExamples
    Public Shared Sub Main()

        Dim schema As New XmlSchema()

        ' <xs:element name="cat" type="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="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" substitutionGroup="dog" />
    <xs:element name="brownDog" 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>

Комментарии

Important

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

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

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

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

Свойства

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

Возвращает или задает annotation свойство.

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

Возвращает или задает производную Block функцию.

BlockResolved

Возвращает значение свойства после компиляции Block .

Constraints

Возвращает коллекцию ограничений для элемента.

DefaultValue

Возвращает или задает значение по умолчанию элемента, если его содержимое является простым типом или содержимым элемента textOnly.

ElementSchemaType

XmlSchemaType Возвращает объект, представляющий тип элемента на SchemaType основе или SchemaTypeName значений элемента.

ElementType
Устаревшие..
Устаревшие..
Устаревшие..

Возвращает объект среды CLR на XmlSchemaElement основе элемента или XmlSchemaElement элемента, который содержит значение свойства после компиляции ElementType .

Final

Возвращает или задает Final свойство, указывающее, что дальнейшие производные значения не разрешены.

FinalResolved

Возвращает значение свойства после компиляции Final .

FixedValue

Возвращает или задает фиксированное значение.

Form

Возвращает или задает форму для элемента.

Id

Возвращает или задает идентификатор строки.

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

Возвращает или задает сведения, указывающие, может ли элемент использоваться в документе экземпляра.

IsNillable

Возвращает или задает сведения, указывающие, могут ли xsi:nil возникать данные экземпляра. Указывает, можно ли назначить элементу явное значение nil.

LineNumber

Возвращает или задает номер строки в файле, к которому schema ссылается элемент.

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

Получает или задает позицию строки в файле, к которому schema ссылается элемент.

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

Получает или задает максимальное количество случаев, когда частица может происходить.

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

Возвращает или задает число в виде строкового значения. Максимальное количество случаев, когда частица может возникать.

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

Возвращает или задает минимальное количество случаев, когда может произойти частица.

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

Возвращает или задает число в виде строкового значения. Минимальное количество случаев, когда частица может произойти.

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

Возвращает или задает имя элемента.

Namespaces

Возвращает или задает XmlSerializerNamespaces для использования с этим объектом схемы.

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

Возвращает или задает родительский элемент этого XmlSchemaObjectэлемента.

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

Возвращает фактическое полное имя заданного элемента.

RefName

Возвращает или задает имя ссылки элемента, объявленного в этой схеме (или другую схему, указанную указанным пространством имен).

SchemaType

Возвращает или задает тип элемента. Это может быть сложный или простой тип.

SchemaTypeName

Возвращает или задает имя встроенного типа данных, определенного в этой схеме или другой схеме, указанной указанным пространством имен.

SourceUri

Возвращает или задает исходное расположение файла, загруженного схемой.

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

Возвращает или задает имя элемента, заменяемого этим элементом.

UnhandledAttributes

Возвращает или задает квалифицированные атрибуты, которые не принадлежат целевому пространству имен текущей схемы.

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

Методы

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

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

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

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

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

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

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

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

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

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

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

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