XmlSchema Klass

Definition

En minnesintern representation av ett XML-schema enligt beskrivningen i W3C XML-schema ( World Wide Web Consortium) del 1: Strukturer och XML-schema del 2: Datatyper].

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
Arv
XmlSchema
Arv

Exempel

I följande exempel skapas en schemadefinition.

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

Följande XML-fil genereras för föregående kodexempel.


<?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>

Kommentarer

Important

  • Använd inte scheman från okända eller ej betrodda källor eller platser. Om du gör det äventyras säkerheten för koden.
  • XML-scheman (inklusive infogade scheman) är i sig sårbara för överbelastningsattacker. acceptera dem inte i ej betrodda scenarier.
  • Undantag som uppstår till följd av att klassen används XmlSchema , till exempel XmlSchemaException klassen, kan innehålla känslig information som inte ska exponeras i obetrodda scenarier. Till exempel returnerar SourceUri-egenskapen hos en XmlSchemaException URI-sökvägen till schemafilen som orsakade undantaget. Egenskapen SourceUri ska inte exponeras i ej betrodda scenarier. Undantag bör hanteras korrekt så att den här känsliga informationen inte exponeras i obetrodda scenarier.

Konstruktorer

Name Description
XmlSchema()

Initierar en ny instans av XmlSchema klassen.

Fält

Name Description
InstanceNamespace

Xml-schemainstansens namnområde. Det här fältet är konstant.

Namespace

XML-schemanamnområdet. Det här fältet är konstant.

Egenskaper

Name Description
AttributeFormDefault

Hämtar eller anger formuläret för attribut som deklarerats i schemats målnamnområde.

AttributeGroups

Hämtar post-schema-kompileringsvärdet för alla globala attributgrupper i schemat.

Attributes

Hämtar post-schema-kompileringsvärdet för alla attribut i schemat.

BlockDefault

Hämtar eller anger blockDefault attributet, som anger standardvärdet för block attributet för element och komplexa typer i targetNamespace schemat.

ElementFormDefault

Hämtar eller anger formuläret för element som deklarerats i målnamnområdet för schemat.

Elements

Hämtar post-schema-kompileringsvärdet för alla element i schemat.

FinalDefault

Hämtar eller anger finalDefault attributet, som anger standardvärdet för final attributet för element och komplexa typer i schemats målnamnområde.

Groups

Hämtar post-schema-kompileringsvärdet för alla grupper i schemat.

Id

Hämtar eller anger sträng-ID.

Includes

Hämtar samlingen med inkluderade och importerade scheman.

IsCompiled

Anger om schemat har kompilerats.

Items

Hämtar samlingen med schemaelement i schemat och används för att lägga till nya elementtyper på schema elementnivå.

LineNumber

Hämtar eller anger radnumret i filen som elementet schema refererar till.

(Ärvd från XmlSchemaObject)
LinePosition

Hämtar eller anger radpositionen i filen som elementet schema refererar till.

(Ärvd från XmlSchemaObject)
Namespaces

Hämtar eller anger det XmlSerializerNamespaces som ska användas med det här schemaobjektet.

(Ärvd från XmlSchemaObject)
Notations

Hämtar post-schema-kompileringsvärdet för alla noteringar i schemat.

Parent

Hämtar eller anger överordnad för den här XmlSchemaObject.

(Ärvd från XmlSchemaObject)
SchemaTypes

Hämtar post-schema-kompileringsvärdet för alla schematyper i schemat.

SourceUri

Hämtar eller anger källplatsen för filen som läste in schemat.

(Ärvd från XmlSchemaObject)
TargetNamespace

Hämtar eller anger URI (Uniform Resource Identifier) för schemamålnamnområdet.

UnhandledAttributes

Hämtar eller anger de kvalificerade attribut som inte tillhör schemats målnamnområde.

Version

Hämtar eller anger versionen av schemat.

Metoder

Name Description
Compile(ValidationEventHandler, XmlResolver)
Föråldrad.
Föråldrad.
Föråldrad.

Kompilerar XML-schemaobjektmodellen (SOM) till schemainformation för validering. Används för att kontrollera syntaktisk och semantisk struktur i programmatiskt byggda SOM. Semantisk valideringskontroll utförs under kompileringen.

Compile(ValidationEventHandler)
Föråldrad.
Föråldrad.
Föråldrad.

Kompilerar XML-schemaobjektmodellen (SOM) till schemainformation för validering. Används för att kontrollera syntaktisk och semantisk struktur i programmatiskt byggda SOM. Semantisk valideringskontroll utförs under kompileringen.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Read(Stream, ValidationEventHandler)

Läser ett XML-schema från den angivna strömmen.

Read(TextReader, ValidationEventHandler)

Läser ett XML-schema från den angivna TextReader.

Read(XmlReader, ValidationEventHandler)

Läser ett XML-schema från den angivna XmlReader.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
Write(Stream, XmlNamespaceManager)

Skriver XML-schemat till angivet Stream med angivet XmlNamespaceManager .

Write(Stream)

Skriver XML-schemat till den angivna dataströmmen.

Write(TextWriter, XmlNamespaceManager)

Skriver XML-schemat till den angivna TextWriter.

Write(TextWriter)

Skriver XML-schemat till den angivna TextWriter.

Write(XmlWriter, XmlNamespaceManager)

Skriver XML-schemat till den angivna XmlWriter.

Write(XmlWriter)

Skriver XML-schemat till den angivna XmlWriter.

Gäller för

Se även