XmlSchemaComplexContentRestriction Classe
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa o elemento restriction
do esquema XML, conforme especificado pelo W3C (World Wide Web Consortium). Essa classe é para tipos complexos com um modelo de conteúdo complexo derivado por restrição. Ela restringe o conteúdo do tipo complexo a um subconjunto do tipo complexo herdado.
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
- Herança
O exemplo a seguir cria um complexContent
elemento estendido por restrição.
#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
O arquivo XML a seguir é gerado para o exemplo de código anterior.
<?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>
Xml |
Inicializa uma nova instância da classe XmlSchemaComplexContentRestriction. |
Annotation |
Obtém ou define a propriedade |
Any |
Obtém ou define o componente XmlSchemaAnyAttribute do modelo de conteúdo complexo. |
Attributes |
Obtém a coleção de atributos para o tipo complexo. Contém os elementos XmlSchemaAttribute e XmlSchemaAttributeGroupRef. |
Base |
Obtém ou define o nome de um tipo complexo do qual esse tipo é derivado por restrição. |
Id |
Obtém ou define a ID de cadeia de caracteres. (Herdado de XmlSchemaAnnotated) |
Line |
Obtém ou define o número de linha no arquivo ao qual o elemento |
Line |
Obtém ou define a posição da linha no arquivo ao qual o elemento |
Namespaces |
Obtém ou define o XmlSerializerNamespaces a ser usado com esse objeto de esquema. (Herdado de XmlSchemaObject) |
Parent |
Obtém ou define o pai deste XmlSchemaObject. (Herdado de XmlSchemaObject) |
Particle |
Obtém ou define uma das classes XmlSchemaGroupRef, XmlSchemaChoice, XmlSchemaAll ou XmlSchemaSequence. |
Source |
Obtém ou define o local de origem para o arquivo que carregou o esquema. (Herdado de XmlSchemaObject) |
Unhandled |
Obtém ou define os atributos qualificados que não pertencem ao namespace de destino do esquema atual. (Herdado de XmlSchemaAnnotated) |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
Get |
Serve como a função de hash padrão. (Herdado de Object) |
Get |
Obtém o Type da instância atual. (Herdado de Object) |
Memberwise |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
To |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Produto | Versões |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: