XmlSchema Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresentazione in memoria di un XML Schema, come descritto nelle specifiche del World Wide Web Consortium (W3C) XML Schema Part 1: Structures e XML Schema Part 2: Datatypes.
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
- Ereditarietà
-
XmlSchema
- Ereditarietà
Esempio
Nell'esempio seguente viene creata una definizione dello schema.
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
class XmlSchemaExamples
{
public:
static void Main()
{
XmlSchema^ schema = gcnew XmlSchema();
// <xs:element name="cat" type="xs:string"/>
XmlSchemaElement^ elementCat = gcnew XmlSchemaElement();
schema->Items->Add(elementCat);
elementCat->Name = "cat";
elementCat->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="dog" type="xs:string"/>
XmlSchemaElement^ elementDog = gcnew XmlSchemaElement();
schema->Items->Add(elementDog);
elementDog->Name = "dog";
elementDog->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="redDog" substitutionGroup="dog" />
XmlSchemaElement^ elementRedDog = gcnew XmlSchemaElement();
schema->Items->Add(elementRedDog);
elementRedDog->Name = "redDog";
elementRedDog->SubstitutionGroup = gcnew XmlQualifiedName("dog");
// <xs:element name="brownDog" substitutionGroup ="dog" />
XmlSchemaElement^ elementBrownDog = gcnew XmlSchemaElement();
schema->Items->Add(elementBrownDog);
elementBrownDog->Name = "brownDog";
elementBrownDog->SubstitutionGroup = gcnew XmlQualifiedName("dog");
// <xs:element name="pets">
XmlSchemaElement^ elementPets = gcnew XmlSchemaElement();
schema->Items->Add(elementPets);
elementPets->Name = "pets";
// <xs:complexType>
XmlSchemaComplexType^ complexType = gcnew XmlSchemaComplexType();
elementPets->SchemaType = complexType;
// <xs:choice minOccurs="0" maxOccurs="unbounded">
XmlSchemaChoice^ choice = gcnew XmlSchemaChoice();
complexType->Particle = choice;
choice->MinOccurs = 0;
choice->MaxOccursString = "unbounded";
// <xs:element ref="cat"/>
XmlSchemaElement^ catRef = gcnew XmlSchemaElement();
choice->Items->Add(catRef);
catRef->RefName = gcnew XmlQualifiedName("cat");
// <xs:element ref="dog"/>
XmlSchemaElement^ dogRef = gcnew XmlSchemaElement();
choice->Items->Add(dogRef);
dogRef->RefName = gcnew XmlQualifiedName("dog");
XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
schemaSet->ValidationEventHandler += gcnew ValidationEventHandler(ValidationCallbackOne);
schemaSet->Add(schema);
schemaSet->Compile();
XmlSchema^ compiledSchema;
for each (XmlSchema^ schema1 in schemaSet->Schemas())
{
compiledSchema = schema1;
}
XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager(gcnew NameTable());
nsmgr->AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
compiledSchema->Write(Console::Out, nsmgr);
}
static void ValidationCallbackOne(Object^ sender, ValidationEventArgs^ args)
{
Console::WriteLine(args->Message);
}
};
int main()
{
XmlSchemaExamples::Main();
return 0;
};
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
Il file XML seguente viene generato per l'esempio di codice precedente.
<?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>
Commenti
Importante
- Non usare schemi da origini o posizioni sconosciute o non attendibili. In questo modo verrà compromessa la sicurezza del codice.
- Gli schemi XML (inclusi gli schemi inline) sono intrinsecamente vulnerabili agli attacchi Denial of Service; non accettarli in scenari non attendibili.
- Le eccezioni generate come risultato dell'uso della classe, ad esempio la XmlSchemaXmlSchemaException classe, possono contenere informazioni riservate che non devono essere esposte in scenari non attendibili. Ad esempio, la SourceUri proprietà di un XmlSchemaException oggetto restituisce il percorso URI al file dello schema che ha causato l'eccezione. La SourceUri proprietà non deve essere esposta in scenari non attendibili. Le eccezioni devono essere gestite correttamente in modo che queste informazioni riservate non siano esposte in scenari non attendibili.
Costruttori
XmlSchema() |
Inizializza una nuova istanza della classe XmlSchema. |
Campi
InstanceNamespace |
Spazio dei nomi dell'istanza di XML Schema. Questo campo è costante. |
Namespace |
Spazio dei nomi di XML Schema. Questo campo è costante. |
Proprietà
AttributeFormDefault |
Ottiene o imposta il form per gli attributi dichiarati nello spazio dei nomi di destinazione dello schema. |
AttributeGroups |
Ottiene il valore impostato dopo la compilazione dello schema di tutti i gruppi di attributi globali presenti nello schema. |
Attributes |
Ottiene il valore impostato dopo la compilazione dello schema di tutti gli attributi presenti nello schema. |
BlockDefault |
Ottiene o imposta l'attributo |
ElementFormDefault |
Ottiene o imposta il form per gli elementi dichiarati nello spazio dei nomi di destinazione dello schema. |
Elements |
Ottiene il valore impostato dopo la compilazione dello schema di tutti gli elementi presenti nello schema. |
FinalDefault |
Ottiene o imposta l'attributo |
Groups |
Ottiene il valore impostato dopo la compilazione dello schema di tutti i gruppi presenti nello schema. |
Id |
Ottiene o imposta l'ID della stringa. |
Includes |
Ottiene la raccolta degli schemi inclusi e importati. |
IsCompiled |
Indica se lo schema è stato compilato. |
Items |
Ottiene l'insieme degli elementi presenti nello schema e viene utilizzato per aggiungere nuovi tipi di elementi a livello dell'elemento |
LineNumber |
Ottiene o imposta il numero di riga nel file a cui l'elemento |
LinePosition |
Ottiene o imposta la posizione di riga nel file a cui l'elemento |
Namespaces |
Ottiene o imposta l'oggetto XmlSerializerNamespaces da utilizzare con questo oggetto schema. (Ereditato da XmlSchemaObject) |
Notations |
Ottiene il valore impostato dopo la compilazione dello schema per tutte le notazioni presenti nello schema. |
Parent |
Ottiene o imposta la classe padre della classe XmlSchemaObject. (Ereditato da XmlSchemaObject) |
SchemaTypes |
Ottiene il valore impostato dopo la compilazione dello schema di tutti i tipi di schema presenti nello schema. |
SourceUri |
Ottiene o imposta la posizione di origine per il file che ha caricato lo schema. (Ereditato da XmlSchemaObject) |
TargetNamespace |
Ottiene o imposta l'URI (Uniform Resource Identifier) dello spazio dei nomi di destinazione dello schema. |
UnhandledAttributes |
Ottiene o imposta gli attributi qualificati che non appartengono allo spazio dei nomi di destinazione dello schema. |
Version |
Ottiene o imposta la versione dello schema. |
Metodi
Compile(ValidationEventHandler) |
Obsoleti.
Obsoleti.
Obsoleti.
Compila il modello SOM (Schema Object Model) XML in informazioni sullo schema per la convalida. Usato per controllare la struttura sintattica e semantica di SOM compilato a livello di codice. Il controllo di convalida della semantica viene eseguito durante la compilazione. |
Compile(ValidationEventHandler, XmlResolver) |
Obsoleti.
Obsoleti.
Obsoleti.
Compila il modello SOM (Schema Object Model) XML in informazioni sullo schema per la convalida. Usato per controllare la struttura sintattica e semantica di SOM compilato a livello di codice. Il controllo di convalida della semantica viene eseguito durante la compilazione. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Read(Stream, ValidationEventHandler) |
Legge un XML Schema dal flusso fornito. |
Read(TextReader, ValidationEventHandler) |
Legge uno schema XML dall'oggetto TextReader fornito. |
Read(XmlReader, ValidationEventHandler) |
Legge uno schema XML dall'oggetto XmlReader fornito. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Write(Stream) |
Scrive l'XML Schema nel flusso di dati specificato. |
Write(Stream, XmlNamespaceManager) |
Scrive lo schema XML nella classe Stream fornita utilizzando la classe XmlNamespaceManager specificata. |
Write(TextWriter) |
Scrive lo schema XML nell'oggetto TextWriter fornito. |
Write(TextWriter, XmlNamespaceManager) |
Scrive lo schema XML nell'oggetto TextWriter fornito. |
Write(XmlWriter) |
Scrive lo schema XML nell'oggetto XmlWriter fornito. |
Write(XmlWriter, XmlNamespaceManager) |
Scrive lo schema XML nell'oggetto XmlWriter fornito. |