XmlSchemaComplexContentRestriction Class
Class for complex types with a complex content model that are derived by restriction. Restricts the contents of the complex type to a subset of the inherited complex type. Represents the World Wide Web Consortium (W3C) restriction element for complex content.
For a list of all members of this type, see XmlSchemaComplexContentRestriction Members.
System.Object
System.Xml.Schema.XmlSchemaObject
System.Xml.Schema.XmlSchemaAnnotated
System.Xml.Schema.XmlSchemaContent
System.Xml.Schema.XmlSchemaComplexContentRestriction
[Visual Basic] Public Class XmlSchemaComplexContentRestriction Inherits XmlSchemaContent [C#] public class XmlSchemaComplexContentRestriction : XmlSchemaContent [C++] public __gc class XmlSchemaComplexContentRestriction : public XmlSchemaContent [JScript] public class XmlSchemaComplexContentRestriction extends XmlSchemaContent
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Example
[Visual Basic, C#, C++] The following example creates a complexContent element extended by restriction.
[Visual Basic] Option Explicit Option Strict Imports System 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) schema.Compile(AddressOf ValidationCallbackOne) Dim nsmgr As New XmlNamespaceManager(New NameTable()) nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema") schema.Write(Console.Out, nsmgr) End Sub 'Main Public Shared Sub ValidationCallbackOne(sender As Object, args As ValidationEventArgs) Console.WriteLine(args.Message) End Sub 'ValidationCallbackOne End Class 'XMLSchemaExamples [C#] 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); schema.Compile(new ValidationEventHandler(ValidationCallbackOne)); XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable()); nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema"); schema.Write(Console.Out, nsmgr); } public static void ValidationCallbackOne(object sender, ValidationEventArgs args) { Console.WriteLine(args.Message); } } [C++] #using <mscorlib.dll> #using <System.Xml.dll> using namespace System; using namespace System::Xml; using namespace System::Xml::Schema; __gc class XMLSchemaExamples { public: static void main() { XmlSchema* schema = new XmlSchema(); // <xs:complexType name="phoneNumber"> XmlSchemaComplexType* phoneNumber = new XmlSchemaComplexType(); phoneNumber->Name = S"phoneNumber"; // <xs:sequence> XmlSchemaSequence* phoneNumberSequence = new XmlSchemaSequence(); // <xs:element name="areaCode"/> XmlSchemaElement* areaCode1 = new XmlSchemaElement(); areaCode1->MinOccurs = 0; areaCode1->MaxOccursString = S"1"; areaCode1->Name = S"areaCode"; phoneNumberSequence->Items->Add(areaCode1); // <xs:element name="prefix"/> XmlSchemaElement* prefix1 = new XmlSchemaElement(); prefix1->MinOccurs = 1; prefix1->MaxOccursString = S"1"; prefix1->Name = S"prefix"; phoneNumberSequence->Items->Add(prefix1); // <xs:element name="number"/> XmlSchemaElement* number1 = new XmlSchemaElement(); number1->MinOccurs = 1; number1->MaxOccursString = S"1"; number1->Name = S"number"; phoneNumberSequence->Items->Add(number1); phoneNumber->Particle = phoneNumberSequence; schema->Items->Add(phoneNumber); // <xs:complexType name="localPhoneNumber"> XmlSchemaComplexType* localPhoneNumber = new XmlSchemaComplexType(); localPhoneNumber->Name = S"localPhoneNumber"; // <xs:complexContent> XmlSchemaComplexContent* complexContent = new XmlSchemaComplexContent(); // <xs:restriction base="phoneNumber"> XmlSchemaComplexContentRestriction* restriction = new XmlSchemaComplexContentRestriction(); restriction->BaseTypeName = new XmlQualifiedName(S"phoneNumber", S""); // <xs:sequence> XmlSchemaSequence* sequence2 = new XmlSchemaSequence(); // <xs:element name="areaCode" minOccurs="0"/> XmlSchemaElement* areaCode2 = new XmlSchemaElement(); areaCode2->MinOccurs = 0; areaCode2->MaxOccursString = S"1"; areaCode2->Name = S"areaCode"; sequence2->Items->Add(areaCode2); // <xs:element name="prefix"/> XmlSchemaElement* prefix2 = new XmlSchemaElement(); prefix2->MinOccurs = 1; prefix2->MaxOccursString = S"1"; prefix2->Name = S"prefix"; sequence2->Items->Add(prefix2); // <xs:element name="number"/> XmlSchemaElement* number2 = new XmlSchemaElement(); number2->MinOccurs = 1; number2->MaxOccursString = S"1"; number2->Name = S"number"; sequence2->Items->Add(number2); restriction->Particle = sequence2; complexContent->Content = restriction; localPhoneNumber->ContentModel = complexContent; schema->Items->Add(localPhoneNumber); schema->Compile(new ValidationEventHandler(0, ValidationCallbackOne)); XmlNamespaceManager* nsmgr = new XmlNamespaceManager(new NameTable()); nsmgr->AddNamespace(S"xs", S"http://www.w3.org/2001/XMLSchema"); schema->Write(Console::Out,nsmgr); } static void ValidationCallbackOne(Object* /*sender*/, ValidationEventArgs* args) { Console::WriteLine(args->Message); } }; int main() { XMLSchemaExamples::main(); }
[Visual Basic, C#, C++] The following XML file is generated for the preceding code example.
<?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>
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Namespace: System.Xml.Schema
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
Assembly: System.Xml (in System.Xml.dll)
See Also
XmlSchemaComplexContentRestriction Members | System.Xml.Schema Namespace