다음을 통해 공유


Name 특성의 바인딩 지원

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

.NET Framework에서는 name 특성에 대한 바인딩 지원을 제공합니다.

name 특성 값은 특성이 적용되는 요소에 따라 공용 클래스 또는 필드의 이름에 해당합니다. 적절한 ***Name 속성을 적용하여 Xsd.exe가 XSD 문서를 생성할 때 생성되는 이름을 재정의할 수 있습니다.

XSD 문서에서 소스 생성

XML 스키마 문서에서 소스 코드를 생성할 때 Xsd.exe가 형식 바인딩을 제공하는 요소에 대해 name 특성이 다음과 같이 사용됩니다.

<attribute>: 해당 특성을 나타내는 public 클래스 필드의 이름을 제공합니다. 이 필드는 System.Xml.Serialization.XmlAttributeAttribute로 표시됩니다.

<complexType>: 복합 형식에 해당하는 클래스의 이름을 제공합니다.

<element>: 해당 요소를 나타내는 public 클래스 필드의 이름을 제공합니다. <element> 요소에 익명 <complexType> 정의가 포함되어 있으면 이 이름은 복합 형식에 해당하는 클래스의 이름이 됩니다.

<simpleType>: 단순 형식에 해당하는 클래스의 이름을 제공합니다. .NET Framework에서는 (a) 문자열 기반 형식의 열거형과 (b) 특성으로 사용되는 목록의 작성을 통해서만 단순 형식을 파생시킬 수 있습니다.

코딩 규칙을 따르기 위해 대/소문자 변경을 시도하지 않습니다. 예를 들어, <complexType> 요소의 name 특성 값이 testInfo인 경우 결과 클래스 이름은 첫 문자가 대문자인 TestInfo가 아닌 testInfo가 됩니다. 이름과 예약된 키워드가 충돌하면 이름 앞에 @ 기호가 붙습니다.

.NET Framework에는 고유성과 참조 무결성을 설정하는 데 사용되는 <key>, <keyref> 및 **<unique>**와 같은 XML 스키마 정의 언어 요소에 대한 바인딩이 없습니다. 따라서 이러한 요소에 사용되는 name 특성은 무시됩니다. 마찬가지로 <notation> 요소에 대한 형식 바인딩이 없으므로 이 요소 내에서는 name 특성이 무시됩니다.

Xsd.exe에서는 <group><attributeGroup> 요소를 직접 지원하지 않고 각 참조의 콘텐츠를 참조가 포함된 각 복합 형식에 해당하는 클래스로 확장하기 때문에 그룹 또는 특성 그룹 이름이 무시됩니다.

클래스에서 XSD 문서 생성

Xsd.exe는 어셈블리의 클래스 집합에서 XSD 문서를 생성할 때 앞에서 설명한 코드 구문을 사용하여 해당 name 특성의 값을 제공합니다.

또한, 필드 및 public 속성이 <element><attribute> 요소로 변환되므로 기본적으로 속성 이름이 name 특성 값이 됩니다.

다음 특성의 속성을 통해 다른 이름(name 특성 값)이 제공될 수 있습니다.

포함할 수 있는 요소: <attribute>, <attributeGroup>, <complexType>, <element>, <group>, <key>, <keyref>, <notation>, <simpleType>, <unique>

참고 항목

참조

System.Xml.Schema.XmlSchemaAttribute.Name
System.Xml.Schema.XmlSchemaAttributeGroup.Name
System.Xml.Schema.XmlSchemaElement.Name
System.Xml.Schema.XmlSchemaGroup.Name
System.Xml.Schema.XmlSchemaType.Name
XmlSchemaComplexType
XmlSchemaSimpleType
System.Xml.Schema.XmlSchemaIdentityConstraint.Name
XmlSchemaKey
XmlSchemaKeyref
XmlSchemaUnique
System.Xml.Schema.XmlSchemaNotation.Name