XmlSchemaComplexContentRestriction 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.
Rappresenta l'elemento restriction da XML Schema come specificato dal World Wide Web Consortium (W3C). Questa classe è destinata a tipi complessi con un modello di contenuto complesso derivato dalla restrizione. Limita il contenuto del tipo complesso a un subset del tipo complesso ereditato.
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
- Ereditarietà
Esempio
Nell'esempio seguente viene creato un complexContent elemento esteso per restrizione.
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
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: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>
Costruttori
| Nome | Descrizione |
|---|---|
| XmlSchemaComplexContentRestriction() |
Inizializza una nuova istanza della classe XmlSchemaComplexContentRestriction. |
Proprietà
| Nome | Descrizione |
|---|---|
| Annotation |
Ottiene o imposta la |
| AnyAttribute |
Ottiene o imposta il XmlSchemaAnyAttribute componente del modello di contenuto complesso. |
| Attributes |
Ottiene la raccolta di attributi per il tipo complesso. Contiene gli XmlSchemaAttribute elementi e XmlSchemaAttributeGroupRef . |
| BaseTypeName |
Ottiene o imposta il nome di un tipo complesso da cui questo tipo è derivato dalla restrizione. |
| Id |
Ottiene o imposta l'ID stringa. (Ereditato da XmlSchemaAnnotated) |
| LineNumber |
Ottiene o imposta il numero di riga nel file a cui fa riferimento l'elemento |
| LinePosition |
Ottiene o imposta la posizione della riga nel file a cui fa riferimento l'elemento |
| Namespaces |
Ottiene o imposta l'oggetto XmlSerializerNamespaces da utilizzare con questo oggetto schema. (Ereditato da XmlSchemaObject) |
| Parent |
Ottiene o imposta l'elemento padre dell'oggetto XmlSchemaObject. (Ereditato da XmlSchemaObject) |
| Particle |
Ottiene o imposta una delle XmlSchemaGroupRefclassi , XmlSchemaChoiceXmlSchemaAll, o XmlSchemaSequence . |
| SourceUri |
Ottiene o imposta il percorso di origine per il file che ha caricato lo schema. (Ereditato da XmlSchemaObject) |
| UnhandledAttributes |
Ottiene o imposta gli attributi qualificati che non appartengono allo spazio dei nomi di destinazione dello schema corrente. (Ereditato da XmlSchemaAnnotated) |
Metodi
| Nome | Descrizione |
|---|---|
| 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 il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |