Export schémat ze tříd
Chcete-li vygenerovat schémata jazyka XSD (XML Schema Definition Language) z tříd, které se používají v modelu kontraktu XsdDataContractExporter dat, použijte třídu. Toto téma popisuje proces vytváření schémat.
Proces exportu
Proces exportu schématu začíná jedním nebo více typy a vytvoří XmlSchemaSet ten, který popisuje projekci XML těchto typů.
Je XmlSchemaSet
součástí objektového modelu schématu rozhraní .NET Framework (SOM), který představuje sadu dokumentů schématU XSD. Chcete-li vytvořit dokumenty XSD z objektu XmlSchemaSet
, použijte kolekci schémat z Schemas vlastnosti XmlSchemaSet
třídy. Potom serializovat každý XmlSchema objekt pomocí XmlSerializer.
Export schémat
Vytvořte instanci XsdDataContractExporter.
Nepovinné. Předejte XmlSchemaSet konstruktor. V tomto případě je schéma vygenerované během exportu schématu přidáno do této XmlSchemaSet instance namísto spuštění s prázdnou XmlSchemaSet.
Nepovinné. Volejte jednu z CanExport metod. Metoda určuje, zda zadaný typ lze exportovat. Metoda má stejné přetížení jako
Export
metoda v dalším kroku.Volejte jednu z Export metod. Existují tři přetížení, která přebírá Typeobjekty List<T>
Type
nebo List<T>Assembly objekty. V posledním případě se exportují všechny typy ve všech daných sestaveních.Více volání metody
Export
vede k přidání více položek do stejnéhoXmlSchemaSet
. Typ není vygenerován vXmlSchemaSet
případě, že již existuje.Export
Proto volání vícekrát na stejnéXsdDataContractExporter
je vhodnější vytvořit více instancíXsdDataContractExporter
třídy. Tím se zabrání generování duplicitních typů schémat.Poznámka:
Pokud během exportu dojde k selhání,
XmlSchemaSet
bude stav nepředvídatelný.Přístup k XmlSchemaSetSchemas vlastnosti.
Možnosti exportu
Vlastnost třídy XsdDataContractExporter můžete nastavit Options na instanci ExportOptions třídy, abyste mohli řídit různé aspekty procesu exportu. Konkrétně můžete nastavit následující možnosti:
KnownTypes. Tato kolekce
Type
představuje známé typy exportovaných typů. (Další informace najdete v tématu Známé typy kontraktů dat.) Tyto známé typy jsou exportovány při každémExport
volání kromě typů předaných metoděExport
.DataContractSurrogate. Prostřednictvím IDataContractSurrogate této vlastnosti lze zadat vlastnost, která přizpůsobí proces exportu. Další informace naleznete v tématu Náhradní smlouvy dat. Ve výchozím nastavení se nepoužívá žádná náhradní položka.
Pomocné metody
Kromě primární role exportu schématu XsdDataContractExporter
poskytuje několik užitečných pomocných metod, které poskytují informace o typech. Tady jsou některé z nich:
GetRootElementName Metoda. Tato metoda přebírá
Type
a vrací XmlQualifiedName , který představuje název kořenového elementu a obor názvů, který by byl použit, pokud tento typ byl serializován jako kořenový objekt.GetSchemaTypeName Metoda. Tato metoda přebírá
Type
a vrací XmlQualifiedName , který představuje název typu schématu XSD, který by byl použit, pokud byl tento typ exportován do schématu. Pro IXmlSerializable typy reprezentované jako anonymní typy ve schématu, tato metoda vrátínull
.GetSchemaType Metoda. Tato metoda funguje pouze s IXmlSerializable typy, které jsou reprezentovány jako anonymní typy ve schématu, a vrací
null
pro všechny ostatní typy. Pro anonymní typy vrátí tato metoda XmlSchemaType , která představuje danéType
.
Možnosti exportu ovlivňují všechny tyto metody.