XmlSchema Klas

Definitie

Een in-memory weergave van een XML-schema, zoals opgegeven in het W3C XML-schema deel 1 van het World Wide Web Consortium (W3C): Structuren en XML-schema deel 2: Gegevenstypen].

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

Voorbeelden

In het volgende voorbeeld wordt een schemadefinitie gemaakt.

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

Het volgende XML-bestand wordt gegenereerd voor het voorgaande codevoorbeeld.


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

Opmerkingen

Important

  • Gebruik geen schema's van onbekende of niet-vertrouwde bronnen of locaties. Als u dit doet, wordt de beveiliging van uw code aangetast.
  • XML-schema's (inclusief inlineschema's) zijn inherent kwetsbaar voor Denial of Service-aanvallen; accepteer ze niet in niet-vertrouwde scenario's.
  • Uitzonderingen die worden gegenereerd als gevolg van het gebruik van de XmlSchema klasse, zoals de XmlSchemaException klasse, kunnen gevoelige informatie bevatten die niet mag worden weergegeven in niet-vertrouwde scenario's. De SourceUri eigenschap van een XmlSchemaException object retourneert bijvoorbeeld het URI-pad naar het schemabestand dat de uitzondering heeft veroorzaakt. De SourceUri eigenschap mag niet worden weergegeven in niet-vertrouwde scenario's. Uitzonderingen moeten correct worden afgehandeld, zodat deze gevoelige informatie niet wordt weergegeven in niet-vertrouwde scenario's.

Constructors

Name Description
XmlSchema()

Initialiseert een nieuw exemplaar van de XmlSchema klasse.

Velden

Name Description
InstanceNamespace

De naamruimte van het XML-schema-exemplaar. Dit veld is constant.

Namespace

De naamruimte van het XML-schema. Dit veld is constant.

Eigenschappen

Name Description
AttributeFormDefault

Hiermee haalt u het formulier op voor kenmerken die zijn gedeclareerd in de doelnaamruimte van het schema.

AttributeGroups

Haalt de compilatiewaarde na het schema op van alle globale kenmerkgroepen in het schema.

Attributes

Hiermee haalt u de compilatiewaarde na schema op voor alle kenmerken in het schema.

BlockDefault

Hiermee wordt het blockDefault kenmerk opgehaald of ingesteld, waarmee de standaardwaarde van het block kenmerk op element en complexe typen in het targetNamespace schema wordt ingesteld.

ElementFormDefault

Hiermee haalt u het formulier op voor elementen die zijn gedeclareerd in de doelnaamruimte van het schema.

Elements

Haalt de compilatiewaarde na het schema op voor alle elementen in het schema.

FinalDefault

Hiermee wordt het finalDefault kenmerk opgehaald of ingesteld, waarmee de standaardwaarde van het final kenmerk wordt ingesteld op elementen en complexe typen in de doelnaamruimte van het schema.

Groups

Hiermee haalt u de compilatiewaarde van alle groepen in het schema op.

Id

Hiermee haalt u de tekenreeks-id op of stelt u deze in.

Includes

Hiermee haalt u de verzameling opgenomen en geïmporteerde schema's op.

IsCompiled

Geeft aan of het schema is gecompileerd.

Items

Hiermee haalt u de verzameling schema-elementen in het schema op en wordt gebruikt om nieuwe elementtypen toe te voegen op elementniveau schema .

LineNumber

Hiermee haalt u het regelnummer op in het bestand waarnaar het schema element verwijst.

(Overgenomen van XmlSchemaObject)
LinePosition

Hiermee haalt u de lijnpositie op in het bestand waarnaar het schema element verwijst.

(Overgenomen van XmlSchemaObject)
Namespaces

Hiermee wordt het XmlSerializerNamespaces te gebruiken met dit schemaobject opgehaald of ingesteld.

(Overgenomen van XmlSchemaObject)
Notations

Haalt de compilatiewaarde na schema op voor alle notaties in het schema.

Parent

Hiermee haalt u het bovenliggende item op of stelt u deze XmlSchemaObjectin.

(Overgenomen van XmlSchemaObject)
SchemaTypes

Hiermee haalt u de compilatiewaarde na schema op van alle schematypen in het schema.

SourceUri

Hiermee wordt de bronlocatie opgehaald of ingesteld voor het bestand dat het schema heeft geladen.

(Overgenomen van XmlSchemaObject)
TargetNamespace

Hiermee haalt u de URI (Uniform Resource Identifier) van de doelnaamruimte van het schema op of stelt u deze in.

UnhandledAttributes

Hiermee worden de gekwalificeerde kenmerken opgehaald of ingesteld die niet behoren tot de doelnaamruimte van het schema.

Version

Hiermee haalt u de versie van het schema op of stelt u deze in.

Methoden

Name Description
Compile(ValidationEventHandler, XmlResolver)
Verouderd.
Verouderd.

Compileert het XML Schema Object Model (SOM) in schemagegevens voor validatie. Wordt gebruikt om de syntactische en semantische structuur van de programmatisch gebouwde SOM te controleren. Semantische validatiecontrole wordt uitgevoerd tijdens de compilatie.

Compile(ValidationEventHandler)
Verouderd.
Verouderd.

Compileert het XML Schema Object Model (SOM) in schemagegevens voor validatie. Wordt gebruikt om de syntactische en semantische structuur van de programmatisch gebouwde SOM te controleren. Semantische validatiecontrole wordt uitgevoerd tijdens de compilatie.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Read(Stream, ValidationEventHandler)

Leest een XML-schema uit de opgegeven stream.

Read(TextReader, ValidationEventHandler)

Leest een XML-schema van de opgegeven TextReader.

Read(XmlReader, ValidationEventHandler)

Leest een XML-schema van de opgegeven XmlReader.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)
Write(Stream, XmlNamespaceManager)

Hiermee schrijft u het XML-schema naar de opgegeven Stream met behulp van de XmlNamespaceManager opgegeven.

Write(Stream)

Hiermee schrijft u het XML-schema naar de opgegeven gegevensstroom.

Write(TextWriter, XmlNamespaceManager)

Hiermee schrijft u het XML-schema naar de opgegeven TextWriter.

Write(TextWriter)

Hiermee schrijft u het XML-schema naar de opgegeven TextWriter.

Write(XmlWriter, XmlNamespaceManager)

Hiermee schrijft u het XML-schema naar de opgegeven XmlWriter.

Write(XmlWriter)

Hiermee schrijft u het XML-schema naar de opgegeven XmlWriter.

Van toepassing op

Zie ook