Sémák exportálása osztályokból
Ha XML-sémadefiníciós nyelv (XSD) sémákat szeretne létrehozni az adatszerződés-modellben használt osztályokból, használja az osztályt XsdDataContractExporter . Ez a témakör a sémák létrehozásának folyamatát ismerteti.
Az exportálási folyamat
A sémaexportálási folyamat egy vagy több típussal kezdődik, és létrehoz egy XmlSchemaSet , az ilyen típusok XML-vetületét leírót.
Ez XmlSchemaSet
a .NET-keretrendszer sémaobjektum-modelljének (SOM) része, amely XSD-sémadokumentumok halmazát jelöli. XSD-dokumentumok létrehozásához XmlSchemaSet
használja az osztály tulajdonságából származó Schemas sémák gyűjteményét XmlSchemaSet
. Ezután szerializálja az egyes XmlSchema objektumokat a XmlSerializer.
Sémák exportálása
Hozza létre a XsdDataContractExporter egy példányát.
Opcionális. Adjon át egy XmlSchemaSet konstruktort. Ebben az esetben a sémaexportálás során létrehozott séma hozzá lesz adva ehhez XmlSchemaSet a példányhoz, nem pedig üres XmlSchemaSet.
Opcionális. Hívja meg az egyik metódust CanExport . A metódus meghatározza, hogy a megadott típus exportálható-e. A metódus túlterhelése megegyezik a
Export
következő lépésben szereplő metódus túlterhelésével.Hívja meg az egyik metódust Export . Három túlterhelés van, amelyek egy Type, egy List<T>
Type
objektumot vagy objektumot List<T>Assembly vesznek igénybe. Az utolsó esetben a rendszer az összes adott szerelvények összes típusát exportálja.A metódus több
Export
hívásával több elem is hozzáadódik ugyanahhozXmlSchemaSet
a metódushoz. A rendszer nem hoz létre típust abban azXmlSchemaSet
esetben, ha már létezik ott. Ezért az osztály több példányának létrehozása előnyösebb, ha egyszerre többször is meghívjaExport
az osztálytXsdDataContractExporter
.XsdDataContractExporter
Így elkerülhető, hogy ismétlődő sématípusok legyenek létrehozva.Feljegyzés
Ha az exportálás során hiba történik, a
XmlSchemaSet
rendszer kiszámíthatatlan állapotban lesz.Hozzáférés a XmlSchemaSet tulajdonságon keresztül Schemas .
Exportálási beállítások
A tulajdonságot OptionsXsdDataContractExporter az osztály egy példányára állíthatja be az ExportOptions exportálási folyamat különböző aspektusainak szabályozásához. Konkrétan a következő beállításokat állíthatja be:
KnownTypes. Ez a
Type
gyűjtemény az exportált típusok ismert típusait jelöli. (További információ: Adatszerződés ismert típusai.) Ezeket az ismert típusokat a rendszer a metódusnak átadott típusok mellett mindenExport
hívásra exportáljaExport
.DataContractSurrogate. Ezen IDataContractSurrogate a tulajdonságon keresztül adható meg egy, az exportálási folyamatot testre szabó tulajdonság. További információ: Adatszerződés-helyettesítők. Alapértelmezés szerint nem használ helyettesítőt.
Segédmetenek
A séma exportálásának elsődleges szerepe mellett számos XsdDataContractExporter
hasznos segédmetét is kínál, amelyek a típusokkal kapcsolatos információkat nyújtanak. Ezek közé tartoznak:
GetRootElementName Módszer. Ez a metódus egy
Type
olyan értéket ad XmlQualifiedName vissza, amely a gyökérelem nevét és névterét jelöli, amelyet akkor használna, ha ez a típus gyökérobjektumként lett szerializálva.GetSchemaTypeName Módszer. Ez a metódus egy
Type
olyan XSD-sématípus nevét adja vissza XmlQualifiedName , amelyet akkor használna, ha ez a típus a sémába lett exportálva. A sémában névtelen típusokként megadott típusok esetén IXmlSerializable ez a metódus ad visszanull
.GetSchemaType Módszer. Ez a módszer csak olyan típusokkal IXmlSerializable működik, amelyek névtelen típusokként jelennek meg a sémában, és az összes többi típushoz visszatérnek
null
. Névtelen típusok esetén ez a metódus egy XmlSchemaType adott értéket képviselő értéket adType
vissza.
Az exportálási lehetőségek az összes metódust érintik.