XmlSchemaComplexContentRestriction Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente l'élément restriction
issu d'un schéma XML comme spécifié par le W3C (World Wide Web Consortium). Cette classe concerne les types complexes possédant un modèle de contenu complexe dérivé par restriction. Elle restreint le contenu du type complexe à un sous-ensemble du type complexe hérité.
public ref class XmlSchemaComplexContentRestriction : System::Xml::Schema::XmlSchemaContent
public class XmlSchemaComplexContentRestriction : System.Xml.Schema.XmlSchemaContent
type XmlSchemaComplexContentRestriction = class
inherit XmlSchemaContent
Public Class XmlSchemaComplexContentRestriction
Inherits XmlSchemaContent
- Héritage
Exemples
L’exemple suivant crée un complexContent
élément étendu par restriction.
#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:complexType name="phoneNumber">
XmlSchemaComplexType^ phoneNumber = gcnew XmlSchemaComplexType();
phoneNumber->Name = "phoneNumber";
// <xs:sequence>
XmlSchemaSequence^ phoneNumberSequence = gcnew XmlSchemaSequence();
// <xs:element name="areaCode"/>
XmlSchemaElement^ areaCode1 = gcnew XmlSchemaElement();
areaCode1->MinOccurs = 0;
areaCode1->MaxOccursString = "1";
areaCode1->Name = "areaCode";
phoneNumberSequence->Items->Add(areaCode1);
// <xs:element name="prefix"/>
XmlSchemaElement^ prefix1 = gcnew XmlSchemaElement();
prefix1->MinOccurs = 1;
prefix1->MaxOccursString = "1";
prefix1->Name = "prefix";
phoneNumberSequence->Items->Add(prefix1);
// <xs:element name="number"/>
XmlSchemaElement^ number1 = gcnew XmlSchemaElement();
number1->MinOccurs = 1;
number1->MaxOccursString = "1";
number1->Name = "number";
phoneNumberSequence->Items->Add(number1);
phoneNumber->Particle = phoneNumberSequence;
schema->Items->Add(phoneNumber);
// <xs:complexType name="localPhoneNumber">
XmlSchemaComplexType^ localPhoneNumber = gcnew XmlSchemaComplexType();
localPhoneNumber->Name = "localPhoneNumber";
// <xs:complexContent>
XmlSchemaComplexContent^ complexContent = gcnew XmlSchemaComplexContent();
// <xs:restriction base="phoneNumber">
XmlSchemaComplexContentRestriction^ restriction = gcnew XmlSchemaComplexContentRestriction();
restriction->BaseTypeName = gcnew XmlQualifiedName("phoneNumber", "");
// <xs:sequence>
XmlSchemaSequence^ sequence2 = gcnew XmlSchemaSequence();
// <xs:element name="areaCode" minOccurs="0"/>
XmlSchemaElement^ areaCode2 = gcnew XmlSchemaElement();
areaCode2->MinOccurs = 0;
areaCode2->MaxOccursString = "1";
areaCode2->Name = "areaCode";
sequence2->Items->Add(areaCode2);
// <xs:element name="prefix"/>
XmlSchemaElement^ prefix2 = gcnew XmlSchemaElement();
prefix2->MinOccurs = 1;
prefix2->MaxOccursString = "1";
prefix2->Name = "prefix";
sequence2->Items->Add(prefix2);
// <xs:element name="number"/>
XmlSchemaElement^ number2 = gcnew XmlSchemaElement();
number2->MinOccurs = 1;
number2->MaxOccursString = "1";
number2->Name = "number";
sequence2->Items->Add(number2);
restriction->Particle = sequence2;
complexContent->Content = restriction;
localPhoneNumber->ContentModel = complexContent;
schema->Items->Add(localPhoneNumber);
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:complexType name="phoneNumber">
XmlSchemaComplexType phoneNumber = new XmlSchemaComplexType();
phoneNumber.Name = "phoneNumber";
// <xs:sequence>
XmlSchemaSequence phoneNumberSequence = new XmlSchemaSequence();
// <xs:element name="areaCode"/>
XmlSchemaElement areaCode1 = new XmlSchemaElement();
areaCode1.MinOccurs = 0;
areaCode1.MaxOccursString = "1";
areaCode1.Name = "areaCode";
phoneNumberSequence.Items.Add(areaCode1);
// <xs:element name="prefix"/>
XmlSchemaElement prefix1 = new XmlSchemaElement();
prefix1.MinOccurs = 1;
prefix1.MaxOccursString = "1";
prefix1.Name = "prefix";
phoneNumberSequence.Items.Add(prefix1);
// <xs:element name="number"/>
XmlSchemaElement number1 = new XmlSchemaElement();
number1.MinOccurs = 1;
number1.MaxOccursString = "1";
number1.Name = "number";
phoneNumberSequence.Items.Add(number1);
phoneNumber.Particle = phoneNumberSequence;
schema.Items.Add(phoneNumber);
// <xs:complexType name="localPhoneNumber">
XmlSchemaComplexType localPhoneNumber = new XmlSchemaComplexType();
localPhoneNumber.Name = "localPhoneNumber";
// <xs:complexContent>
XmlSchemaComplexContent complexContent = new XmlSchemaComplexContent();
// <xs:restriction base="phoneNumber">
XmlSchemaComplexContentRestriction restriction = new XmlSchemaComplexContentRestriction();
restriction.BaseTypeName = new XmlQualifiedName("phoneNumber", "");
// <xs:sequence>
XmlSchemaSequence sequence2 = new XmlSchemaSequence();
// <xs:element name="areaCode" minOccurs="0"/>
XmlSchemaElement areaCode2 = new XmlSchemaElement();
areaCode2.MinOccurs = 0;
areaCode2.MaxOccursString = "1";
areaCode2.Name = "areaCode";
sequence2.Items.Add(areaCode2);
// <xs:element name="prefix"/>
XmlSchemaElement prefix2 = new XmlSchemaElement();
prefix2.MinOccurs = 1;
prefix2.MaxOccursString = "1";
prefix2.Name = "prefix";
sequence2.Items.Add(prefix2);
// <xs:element name="number"/>
XmlSchemaElement number2 = new XmlSchemaElement();
number2.MinOccurs = 1;
number2.MaxOccursString = "1";
number2.Name = "number";
sequence2.Items.Add(number2);
restriction.Particle = sequence2;
complexContent.Content = restriction;
localPhoneNumber.ContentModel = complexContent;
schema.Items.Add(localPhoneNumber);
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:complexType name="phoneNumber">
Dim phoneNumber As New XmlSchemaComplexType()
phoneNumber.Name = "phoneNumber"
' <xs:sequence>
Dim phoneNumberSequence As New XmlSchemaSequence()
' <xs:element name="areaCode"/>
Dim areaCode1 As New XmlSchemaElement()
areaCode1.MinOccurs = 0
areaCode1.MaxOccursString = "1"
areaCode1.Name = "areaCode"
phoneNumberSequence.Items.Add(areaCode1)
' <xs:element name="prefix"/>
Dim prefix1 As New XmlSchemaElement()
prefix1.MinOccurs = 1
prefix1.MaxOccursString = "1"
prefix1.Name = "prefix"
phoneNumberSequence.Items.Add(prefix1)
' <xs:element name="number"/>
Dim number1 As New XmlSchemaElement()
number1.MinOccurs = 1
number1.MaxOccursString = "1"
number1.Name = "number"
phoneNumberSequence.Items.Add(number1)
phoneNumber.Particle = phoneNumberSequence
schema.Items.Add(phoneNumber)
' <xs:complexType name="localPhoneNumber">
Dim localPhoneNumber As New XmlSchemaComplexType()
localPhoneNumber.Name = "localPhoneNumber"
' <xs:complexContent>
Dim complexContent As New XmlSchemaComplexContent()
' <xs:restriction base="phoneNumber">
Dim restriction As New XmlSchemaComplexContentRestriction()
restriction.BaseTypeName = New XmlQualifiedName("phoneNumber", "")
' <xs:sequence>
Dim sequence2 As New XmlSchemaSequence()
' <xs:element name="areaCode" minOccurs="0"/>
Dim areaCode2 As New XmlSchemaElement()
areaCode2.MinOccurs = 0
areaCode2.MaxOccursString = "1"
areaCode2.Name = "areaCode"
sequence2.Items.Add(areaCode2)
' <xs:element name="prefix"/>
Dim prefix2 As New XmlSchemaElement()
prefix2.MinOccurs = 1
prefix2.MaxOccursString = "1"
prefix2.Name = "prefix"
sequence2.Items.Add(prefix2)
' <xs:element name="number"/>
Dim number2 As New XmlSchemaElement()
number2.MinOccurs = 1
number2.MaxOccursString = "1"
number2.Name = "number"
sequence2.Items.Add(number2)
restriction.Particle = sequence2
complexContent.Content = restriction
localPhoneNumber.ContentModel = complexContent
schema.Items.Add(localPhoneNumber)
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
Le fichier XML suivant est généré pour l’exemple de code précédent.
<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="phoneNumber">
<xs:sequence>
<xs:element name="areaCode" minOccurs="0" maxOccurs="1"/>
<xs:element name="prefix" minOccurs="1" maxOccurs="1"/>
<xs:element name="number" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="localPhoneNumber">
<xs:complexContent mixed="false">
<xs:restriction base="phoneNumber">
<xs:sequence>
<xs:element name="areaCode" minOccurs="0" maxOccurs="1"/>
<xs:element name="prefix" minOccurs="1" maxOccurs="1"/>
<xs:element name="number" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:schema>
Constructeurs
XmlSchemaComplexContentRestriction() |
Initialise une nouvelle instance de la classe XmlSchemaComplexContentRestriction. |
Propriétés
Annotation |
Obtient ou définit la propriété |
AnyAttribute |
Obtient ou définit le composant XmlSchemaAnyAttribute du modèle de contenu complexe. |
Attributes |
Obtient la collection d’attributs pour le type complexe. Contient les éléments XmlSchemaAttribute et XmlSchemaAttributeGroupRef. |
BaseTypeName |
Obtient ou définit le nom d'un type complexe à partir duquel ce type est dérivé par restriction. |
Id |
Obtient ou définit l'ID de chaîne. (Hérité de XmlSchemaAnnotated) |
LineNumber |
Obtient ou définit le numéro de la ligne du fichier à laquelle l'élément |
LinePosition |
Obtient ou définit la position de la ligne du fichier à laquelle l'élément |
Namespaces |
Obtient ou définit le XmlSerializerNamespaces à utiliser avec cet objet de schéma. (Hérité de XmlSchemaObject) |
Parent |
Obtient ou définit le parent de ce XmlSchemaObject. (Hérité de XmlSchemaObject) |
Particle |
Obtient ou définit l'une des classes XmlSchemaGroupRef, XmlSchemaChoice, XmlSchemaAll ou XmlSchemaSequence. |
SourceUri |
Obtient ou définit l'emplacement de la source pour le fichier qui a chargé le schéma. (Hérité de XmlSchemaObject) |
UnhandledAttributes |
Obtient ou définit les attributs qualifiés qui n'appartiennent pas à l'espace de noms cible du schéma en cours. (Hérité de XmlSchemaAnnotated) |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |