Eksportowanie schematów z klas

Aby wygenerować schematy języka definicji schematu XML (XSD) z klas, które są używane w modelu kontraktu danych, użyj XsdDataContractExporter klasy. W tym temacie opisano proces tworzenia schematów.

Proces eksportowania

Proces eksportowania schematu rozpoczyna się od jednego lub kilku typów i tworzy XmlSchemaSet , który opisuje projekcję XML tych typów.

XmlSchemaSetJest częścią .NET Framework modelu obiektów schematu (SOM), który reprezentuje zestaw dokumentów schematu XSD. Aby utworzyć dokumenty XSD z XmlSchemaSet , Użyj kolekcji schematów z Schemas właściwości XmlSchemaSet klasy. Następnie serializować każdy XmlSchema obiekt za pomocą XmlSerializer .

Aby wyeksportować schematy

  1. Utwórz wystąpienie elementu XsdDataContractExporter.

  2. Opcjonalny. Przekaż XmlSchemaSet w konstruktorze. W takim przypadku schemat wygenerowany podczas eksportowania schematu jest dodawany do tego XmlSchemaSet wystąpienia zamiast od pustego XmlSchemaSet .

  3. Opcjonalny. Wywołaj jedną z CanExport metod. Metoda określa, czy można eksportować określony typ. Metoda ma takie same przeciążenia jak Export Metoda w następnym kroku.

  4. Wywołaj jedną z Export metod. Istnieją trzy przeciążenia Type , a List<T> Type obiekty lub List<T> Assembly obiekty. W ostatnim przypadku eksportowane są wszystkie typy we wszystkich określonych zestawach.

    Wiele wywołań Export metody powoduje dodanie wielu elementów do tego samego XmlSchemaSet . Typ nie jest generowany w przypadku, XmlSchemaSet gdy już istnieje. W związku z tym, wywoływanie Export wielu wystąpień w tym samym czasie XsdDataContractExporter jest preferowany do utworzenia wielu instancji XsdDataContractExporter klasy. Pozwala to uniknąć generowania zduplikowanych typów schematów.

    Uwaga

    Jeśli wystąpił błąd podczas eksportowania, XmlSchemaSet będzie on znajdować się w stanie nieprzewidywalnym.

  5. Dostęp do XmlSchemaSet Schemas właściwości.

Opcje eksportu

Można ustawić Options Właściwość XsdDataContractExporter na wystąpienie ExportOptions klasy w celu kontrolowania różnych aspektów procesu eksportu. W tym celu można ustawić następujące opcje:

Metody pomocnika

Poza podstawową rolą eksportowania schematu, XsdDataContractExporter zapewnia kilka przydatnych metod pomocniczych, które dostarczają informacji o typach. Są one następujące:

  • GetRootElementName Method. Ta metoda przyjmuje Type i zwraca obiekt XmlQualifiedName , który reprezentuje nazwę elementu głównego i przestrzeń nazw, które będą używane, jeśli ten typ został Zserializowany jako obiekt główny.

  • GetSchemaTypeName Method. Ta metoda przyjmuje Type i zwraca obiekt XmlQualifiedName , który reprezentuje nazwę typu schematu XSD, który będzie używany, jeśli ten typ został wyeksportowany do schematu. IXmlSerializableW przypadku typów reprezentowanych jako typy anonimowe w schemacie ta metoda zwraca null .

  • GetSchemaType Method. Ta metoda działa tylko z IXmlSerializable typami, które są reprezentowane jako typy anonimowe w schemacie, i zwraca null dla wszystkich innych typów. W przypadku typów anonimowych Metoda zwraca, XmlSchemaType która reprezentuje daną Type .

Opcje eksportu mają wpływ na wszystkie te metody.

Zobacz też