Eksportowanie schematów z klas

Aby wygenerować schematy języka definicji schematu XML (XSD) na podstawie klas używanych w modelu kontraktu XsdDataContractExporter danych, użyj klasy . W tym temacie opisano proces tworzenia schematów.

Proces eksportowania

Proces eksportowania schematu rozpoczyna się od co najmniej jednego typu i tworzy obiekt opisujący projekcję XmlSchemaSet XML tych typów.

Element XmlSchemaSet jest częścią modelu obiektów schematu programu .NET Framework (SOM), który reprezentuje zestaw dokumentów schematu XSD. Aby utworzyć dokumenty XSD na podstawie XmlSchemaSetklasy , użyj kolekcji schematów z Schemas właściwości XmlSchemaSet klasy . Następnie serializuj każdy XmlSchema obiekt przy użyciu obiektu XmlSerializer.

Aby wyeksportować schematy

  1. Utwórz wystąpienie elementu XsdDataContractExporter.

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

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

  4. Wywołaj Export jedną z metod. Istnieją trzy przeciążenia, które przyjmują Typeobiekt , List<T>Type lub List<T>Assembly obiekty. W ostatnim przypadku wszystkie typy we wszystkich zestawach są eksportowane.

    Wiele wywołań Export metody powoduje dodanie wielu elementów do tego samego XmlSchemaSetelementu . Typ nie jest generowany do elementu XmlSchemaSet , jeśli już istnieje. W związku z tym wywoływanie Export wielu razy w tej samej metodzie XsdDataContractExporter jest preferowane do tworzenia wielu wystąpień XsdDataContractExporter klasy. Zapobiega to generowaniu zduplikowanych typów schematów.

    Uwaga

    Jeśli podczas eksportowania wystąpi błąd, XmlSchemaSet element będzie w stanie nieprzewidywalnym.

  5. XmlSchemaSet Uzyskaj dostęp do właściwości za pośrednictwem Schemas właściwości .

Opcje eksportu

Właściwość klasy XsdDataContractExporter można ustawić Options na wystąpienie ExportOptions klasy, aby kontrolować różne aspekty procesu eksportu. W szczególności można ustawić następujące opcje:

Metody pomocnika

Oprócz głównej roli eksportowania schematu program XsdDataContractExporter udostępnia kilka przydatnych metod pomocnika, które zawierają informacje o typach. Są to:

  • GetRootElementName Metoda. Ta metoda przyjmuje Type element i zwraca element XmlQualifiedName reprezentujący nazwę elementu głównego i przestrzeń nazw, która byłaby używana, gdyby ten typ został serializowany jako obiekt główny.

  • GetSchemaTypeName Metoda. Ta metoda przyjmuje Type element i zwraca wartość XmlQualifiedName reprezentującą nazwę typu schematu XSD, który byłby używany, gdyby ten typ został wyeksportowany do schematu. W przypadku IXmlSerializable typów reprezentowanych jako typy anonimowe w schemacie ta metoda zwraca wartość null.

  • GetSchemaType Metoda. Ta metoda działa tylko z typami IXmlSerializable reprezentowanymi jako typy anonimowe w schemacie i zwraca null wszystkie inne typy. W przypadku typów anonimowych ta metoda zwraca element XmlSchemaType reprezentujący daną Typewartość .

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

Zobacz też