All 요소의 바인딩 지원

이 항목은 레거시 기술과 관련된 것입니다. 이제 XML Web services와 XML Web services 클라이언트는 다음을 사용하여 만들어야 합니다. Windows Communication Foundation.

.NET Framework에서는 <all> 요소에 대한 바인딩 지원을 제공합니다.

그러나 클래스 집합에서 XML 스키마 문서를 생성할 때 <all> 요소가 만들어지도록 이 요소를 코드에 지정하는 방법은 없습니다.

설명

클래스 집합에서 XML 스키마 문서를 생성할 때 <all> 요소가 만들어지도록 이 요소를 코드에 지정하는 방법은 없습니다.

<all> 요소는 요소를 순서 없이 그룹화합니다. 각 자식 요소는 한 번 표시되거나 전혀 표시되지 않을 수 있습니다.

XML 스키마 문서에서 소스 코드를 생성할 경우 Xsd.exe는 <all> 요소의 각 자식 요소를 public 필드로 변환합니다. 이 필드는 XML 스키마의 자식 요소와 같은 순서로 표시됩니다.

어셈블리의 클래스 집합에서 XML 스키마 문서를 생성할 경우, Xsd.exe에서는 public 필드에 해당하는 자식 요소를 그룹화하는 <all> 요소 대신 <sequence> 요소를 사용합니다. 이때 복합 형식 내의 요소는 순서 없이 표시되는 것이 아니라 정렬되어 표시되는 것으로 가정합니다.

<all> 요소를 포함하는 스키마를 가져올 때는 순서 유지 기능(Xsd.exe의 /order 스위치)을 사용하지 마십시오.

예제

입력 XML 스키마 문서:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            targetNamespace="http://example.org/" xmlns="http://example.org/" elementFormDefault="qualified">
    <xsd:element name="complexInstance" type="MyComplexType"/>
    <xsd:element name="field1" type="xsd:string"/>
    <xsd:element name="field2" type="xsd:string"/>
    <xsd:element name="field3" type="xsd:string"/>

    <xsd:complexType name="MyComplexType">
        <xsd:all>
            <xsd:element ref="field1"/>
            <xsd:element ref="field2"/>
            <xsd:element ref="field3"/>
        </xsd:all>
    </xsd:complexType>
</xsd:schema>

앞의 XML 스키마 문서에서 생성된 C# 클래스:

[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://example.org/")]
 [System.Xml.Serialization.XmlRootAttribute("complexInstance", Namespace="http://example.org/", IsNullable=false)]
public class MyComplexType {
        
    public string field1;
        
    public string field2;
        
    public string field3;
}

앞의 C# 소스에서 컴파일된 어셈블리에서 생성된 XML 스키마 복합 형식:

<xs:complexType name="MyComplexType">
    <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="field1" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="field2" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="field3" type="xs:string" />
    </xs:sequence>
</xs:complexType>

가능한 특성 바인딩 지원

id

Xsd.exe 유틸리티는 고유 식별자를 제공하기 위한 id 특성을 무시합니다.

maxOccurs

<all> 요소의 경우 1 이외의 maxOccurs 특성 값은 사용할 수 없습니다. Xsd.exe에서는 잘못된 값에 대해 오류를 보고합니다.

MaxOccurs 특성의 바인딩 지원 특성을 참조하십시오.

minOccurs

Xsd.exe 도구는 <all> 요소에 minOccurs 특성이 적용될 경우 이를 무시합니다.

MinOccurs 특성의 바인딩 지원 특성을 참조하십시오.

가능한 부모 요소: <complexType>, <extension>, <group>, <restriction>

가능한 자식 요소: <annotation>, <element>