다음을 통해 공유


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

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

내보내기 프로세스

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

XSD XmlSchemaSet 스키마 문서 집합을 나타내는 .NET Framework의 SOM(스키마 개체 모델)의 일부입니다. 에서 만들려면, 클래스의 속성에 있는 스키마 컬렉션을 사용하십시오.> 그런 다음 각 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에 액세스합니다.

내보내기 옵션

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

도우미 메서드

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

  • GetRootElementName 메서드. 이 메서드는 Type을(를) 받아, 이 형식이 루트 개체로 직렬화될 경우 사용될 루트 요소의 이름과 네임스페이스를 나타내는 XmlQualifiedName을 반환합니다.

  • GetSchemaTypeName 메서드. 이 메서드는 Type를 받아, 이 형식이 스키마로 내보내질 경우 사용할 XSD 스키마 타입의 이름을 나타내는 XmlQualifiedName를 반환합니다. 스키마에서 무명 형식으로 표시되는 형식의 경우 IXmlSerializable 이 메서드는 반환합니다 null.

  • GetSchemaType 메서드. 이 메서드는 스키마에서 무명 형식으로 표현된 IXmlSerializable 형식에서만 작동하며, 다른 모든 형식에 대해서는 null을(를) 반환합니다. 무명 형식의 경우 이 메서드는 XmlSchemaType을 나타내는 Type 값을 반환합니다.

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

참고하십시오