다음을 통해 공유


클래스에서 스키마 내보내기

데이터 계약 모델에 사용되는 클래스에서 XSD(XML 스키마 정의 언어) 스키마를 생성하려면 XsdDataContractExporter 클래스를 사용합니다. 이 항목에서는 스키마를 만드는 프로세스에 대해 설명합니다.

내보내기 프로세스

스키마 내보내기 프로세스는 하나 이상의 형식으로 시작되고 해당 형식의 XML 프로젝션을 설명하는 XmlSchemaSet 를 생성합니다.

XmlSchemaSet은 XSD 스키마 문서 집합을 나타내는 .NET Framework의 SOM(Schema Object Model)에 포함됩니다. XmlSchemaSet에서 XSD 문서를 만들려면 Schemas 클래스의 XmlSchemaSet 속성에서 스키마 컬렉션을 사용합니다. 그런 다음 XmlSchema 를 사용하여 각 XmlSerializer개체를 serialize합니다.

스키마를 내보내려면

  1. XsdDataContractExporter 인스턴스를 만듭니다.

  2. (선택 사항) 생성자에 XmlSchemaSet 를 포함하여 전달합니다. 이 경우 스키마를 내보내는 중 생성된 스키마는 빈 XmlSchemaSet 로 시작하지 않고 이 XmlSchemaSet인스턴스에 추가됩니다.

  3. (선택 사항) CanExport 메서드 중 하나를 호출합니다. 메서드에 따라 지정된 형식을 내보낼 수 있는지 여부가 결정됩니다. 이 메서드는 다음 단계의 Export 메서드와 동일한 오버로드를 갖습니다.

  4. Export 메서드 중 하나를 호출합니다. Type, List<T> 개체의 Type 또는 List<T> 개체의 Assembly 을 사용하는 세 가지 오버로드가 있습니다. 마지막 경우에서는 지정된 모든 어셈블리의 모든 형식을 내보냅니다.

    Export 메서드를 여러 번 호출하면 동일한 XmlSchemaSet에 여러 항목이 추가됩니다. 형식이 이미 있으면 XmlSchemaSet 에 생성되지 않습니다. 따라서 Export 클래스의 여러 인스턴스를 만드는 경우 동일한 XsdDataContractExporter 에서 XsdDataContractExporter 를 여러 번 호출하는 것이 좋습니다. 이렇게 하면 중복 스키마 형식이 생성되지 않습니다.

    참고 항목

    내보내기 중 오류가 발생할 경우 XmlSchemaSet 상태를 예측할 수 없습니다.

  5. XmlSchemaSet 속성을 통해 Schemas 에 액세스합니다.

내보내기 옵션

OptionsXsdDataContractExporter 속성을 ExportOptions 클래스로 설정하여 내보내기 프로세스의 다양한 측면을 제어할 수 있습니다. 특히 다음 옵션을 설정할 수 있습니다.

도우미 메서드

스키마를 내보내는 기본 역할 외에도 XsdDataContractExporter 는 형식에 대한 정보를 제공하는 몇 가지 유용한 도우미 메서드를 제공합니다. 여기에는 다음이 포함됩니다.

  • GetRootElementName 메서드를 호출하여 생성됩니다. 이 메서드는 Type 을 받아서 이 형식이 루트 개체로 serialize된 경우에 사용되는 루트 요소 이름과 네임스페이스를 나타내는 XmlQualifiedName 을 반환합니다.

  • GetSchemaTypeName 메서드를 호출하여 생성됩니다. 이 메서드는 Type 을 받아서 이 형식을 스키마로 내보낸 경우에 사용되는 XSD 스키마 형식의 이름을 나타내는 XmlQualifiedName 을 반환합니다. 스키마에 익명 형식으로 나타나는 IXmlSerializable 형식에 대해 이 메서드는 null을 반환합니다.

  • GetSchemaType 메서드를 호출하여 생성됩니다. 이 메서드는 스키마에 익명 형식으로 나타나는 IXmlSerializable 형식에서만 작동하고 다른 모든 형식에 대해 null 을 반환합니다. 익명 형식의 경우 이 메서드는 지정된 XmlSchemaType 을 나타내는 Type을 반환합니다.

내보내기 옵션은 이러한 모든 메서드에 영향을 줍니다.

참고 항목