XmlSchemaComplexContentRestriction 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
W3C(World Wide Web 컨소시엄)에서 지정한 대로 XML 스키마의 restriction
요소를 나타냅니다. 이 클래스는 제한에 의해 파생된 복합 콘텐츠 모델을 포함하는 복합 형식용이며 복합 형식의 콘텐츠를 상속된 복합 형식의 하위 집합으로 제한합니다.
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
- 상속
예제
다음 예제에서는 제한으로 확장된 complexContent
요소를 만듭니다.
#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
다음 XML 파일은 앞의 코드 예제에 대 한 생성 됩니다.
<?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>
생성자
XmlSchemaComplexContentRestriction() |
XmlSchemaComplexContentRestriction 클래스의 새 인스턴스를 초기화합니다. |
속성
Annotation |
|
AnyAttribute |
복합 콘텐츠 모델의 XmlSchemaAnyAttribute 구성 요소를 가져오거나 설정합니다. |
Attributes |
복합 형식에 대한 특성 컬렉션을 가져옵니다. XmlSchemaAttribute와 XmlSchemaAttributeGroupRef 요소를 포함합니다. |
BaseTypeName |
제한에 의해 이 형식이 파생된 기본 복합 형식의 이름을 가져오거나 설정합니다. |
Id |
문자열 ID를 가져오거나 설정합니다. (다음에서 상속됨 XmlSchemaAnnotated) |
LineNumber |
|
LinePosition |
|
Namespaces |
이 스키마 개체에 사용할 XmlSerializerNamespaces를 가져오거나 설정합니다. (다음에서 상속됨 XmlSchemaObject) |
Parent |
이 XmlSchemaObject의 부모를 가져오거나 설정합니다. (다음에서 상속됨 XmlSchemaObject) |
Particle |
XmlSchemaGroupRef, XmlSchemaChoice, XmlSchemaAll 또는 XmlSchemaSequence 클래스 중 하나를 가져오거나 설정합니다. |
SourceUri |
스키마를 로드한 파일의 소스 위치를 가져오거나 설정합니다. (다음에서 상속됨 XmlSchemaObject) |
UnhandledAttributes |
현재 스키마의 대상 네임스페이스에 속하지 않는 정규화된 특성을 가져오거나 설정합니다. (다음에서 상속됨 XmlSchemaAnnotated) |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
적용 대상
.NET