데이터 계약 모델에 사용되는 클래스에서 XSD(XML 스키마 정의 언어) 스키마를 생성하려면 클래스를 XsdDataContractExporter 사용합니다. 이 항목에서는 스키마를 만드는 프로세스에 대해 설명합니다.
내보내기 프로세스
스키마 내보내기 프로세스는 하나 이상의 형식으로 시작하고 이러한 형식의 XML 프로젝션을 설명하는 형식을 생성 XmlSchemaSet 합니다.
XSD XmlSchemaSet
스키마 문서 집합을 나타내는 .NET Framework의 SOM(스키마 개체 모델)의 일부입니다.
스키마를 내보내려면
XsdDataContractExporter인스턴스를 만듭니다.
선택 사항입니다. 생성자에 XmlSchemaSet 전달합니다. 이 경우 스키마 내보내기 중에 생성된 스키마가 빈 XmlSchemaSet인스턴스로 시작하는 대신 이 XmlSchemaSet 인스턴스에 추가됩니다.
선택 사항입니다. 메서드 중 하나를 호출합니다 CanExport . 메서드는 지정된 형식을 내보낼 수 있는지 여부를 결정합니다. 메서드에는 다음 단계의
Export
메서드와 동일한 오버로드가 있습니다.메서드 중 하나를 호출합니다 Export . Type를 사용하는 오브젝트, List<T>의
Type
오브젝트, 또는 List<T>의 Assembly 오브젝트를 위한 세 가지 오버로드가 있습니다. 마지막 경우 지정된 모든 어셈블리의 모든 형식이 내보내집니다.메서드를
Export
여러 차례 호출하면 동일한XmlSchemaSet
항목에 여러 항목이 추가됩니다. 이미 존재하는 경우XmlSchemaSet
에 형식이 생성되지 않습니다. 따라서 동일한Export
에서XsdDataContractExporter
을 여러 번 호출하는 것이XsdDataContractExporter
클래스의 인스턴스를 여러 개 생성하는 것보다 바람직합니다. 이렇게 하면 중복된 스키마 형식이 생성되지 않습니다.비고
내보내는 동안
XmlSchemaSet
에 오류가 발생하면 예상할 수 없는 상태가 됩니다.XmlSchemaSet 속성을 통해 Schemas에 액세스합니다.
내보내기 옵션
Options 속성을 XsdDataContractExporter의 인스턴스인 ExportOptions 클래스의 인스턴스로 설정하여 내보내기 프로세스의 다양한 측면을 제어할 수 있습니다. 특히 다음 옵션을 설정할 수 있습니다.
KnownTypes; 이 컬렉션은
Type
내보내는 형식에 대해 알려진 형식을 나타냅니다. (자세한 내용은 데이터 계약 알려진 형식을 참조하세요.) 이러한 알려진 형식은 메서드에 전달된 형식 외에도 모든Export
호출에서 내보내집니다Export
.DataContractSurrogate; 이 속성을 통해 IDataContractSurrogate를 제공하여 내보내기 프로세스를 사용자 지정할 수 있습니다. 자세한 내용은 데이터 계약 서로게이트를 참조하세요. 기본적으로 서로게이트는 사용되지 않습니다.
도우미 메서드
스키마 XsdDataContractExporter
를 내보내는 기본 역할 외에도 형식에 대한 정보를 제공하는 몇 가지 유용한 도우미 메서드를 제공합니다. 여기에는 다음이 포함됩니다.
GetRootElementName 메서드. 이 메서드는
Type
을(를) 받아, 이 형식이 루트 개체로 직렬화될 경우 사용될 루트 요소의 이름과 네임스페이스를 나타내는 XmlQualifiedName을 반환합니다.GetSchemaTypeName 메서드. 이 메서드는
Type
를 받아, 이 형식이 스키마로 내보내질 경우 사용할 XSD 스키마 타입의 이름을 나타내는 XmlQualifiedName를 반환합니다. 스키마에서 무명 형식으로 표시되는 형식의 경우 IXmlSerializable 이 메서드는 반환합니다null
.GetSchemaType 메서드. 이 메서드는 스키마에서 무명 형식으로 표현된 IXmlSerializable 형식에서만 작동하며, 다른 모든 형식에 대해서는
null
을(를) 반환합니다. 무명 형식의 경우 이 메서드는 XmlSchemaType을 나타내는Type
값을 반환합니다.
내보내기 옵션은 이러한 모든 메서드에 영향을 줍니다.