Dela via


Exportera scheman från klasser

Om du vill generera XSD-schemascheman (XML Schema Definition Language) från klasser som används i datakontraktsmodellen använder du XsdDataContractExporter klassen . Det här avsnittet beskriver processen för att skapa scheman.

Exportprocessen

Schemaexportprocessen börjar med en eller flera typer och skapar en XmlSchemaSet som beskriver XML-projektionen av dessa typer.

XmlSchemaSet är en del av .NET Frameworks schemaobjektmodell (SOM) som representerar en uppsättning XSD-schemadokument. Om du vill skapa XSD-dokument från en XmlSchemaSetanvänder du samlingen med scheman från Schemas -egenskapen för XmlSchemaSet klassen. Serialisera sedan varje XmlSchema objekt med hjälp av XmlSerializer.

Exportera scheman

  1. Skapa en instans av XsdDataContractExporter.

  2. Valfritt. Skicka en XmlSchemaSet i konstruktorn. I det här fallet läggs schemat som genererades under schemaexporten till i den här XmlSchemaSet instansen i stället för att börja med en tom XmlSchemaSet.

  3. Valfritt. Anropa en av CanExport metoderna. Metoden avgör om den angivna typen kan exporteras. Metoden har samma överlagringar som Export metoden i nästa steg.

  4. Anropa en av Export metoderna. Det finns tre överlagringar som tar en Type, en List<T> av Type objekt eller ett List<T> objekt Assembly . I det sista fallet exporteras alla typer i alla angivna sammansättningar.

    Flera anrop till metoden resulterar i att Export flera objekt läggs till i samma XmlSchemaSet. En typ genereras inte till XmlSchemaSet om den redan finns där. Därför är det bättre att anropa Export flera gånger på samma XsdDataContractExporter sätt än att skapa flera instanser av XsdDataContractExporter klassen. Detta förhindrar att dubbletter av schematyper genereras.

    Kommentar

    Om det uppstår ett fel under exporten är det XmlSchemaSet i ett oförutsägbart tillstånd.

  5. Få åtkomst till XmlSchemaSet via Schemas -egenskapen.

Exportalternativ

Du kan ange Options egenskapen XsdDataContractExporter för till en instans av ExportOptions klassen för att styra olika aspekter av exportprocessen. Mer specifikt kan du ange följande alternativ:

  • KnownTypes. Den här samlingen representerar Type de kända typerna för de typer som exporteras. (Mer information finns i Kända typer av datakontrakt.) Dessa kända typer exporteras vid varje Export anrop utöver de typer som skickas Export till metoden.

  • DataContractSurrogate. En IDataContractSurrogate kan anges via den här egenskapen som anpassar exportprocessen. Mer information finns i Surrogater för datakontrakt. Som standard används ingen surrogat.

Hjälpmetoder

Förutom den primära rollen att exportera schema XsdDataContractExporter tillhandahåller de flera användbara hjälpmetoder som ger information om typer. Dessa kan vara:

  • GetRootElementName Metod. Den här metoden tar en Type och returnerar ett XmlQualifiedName som representerar rotelementets namn och namnområde som skulle användas om den här typen serialiserades som rotobjektet.

  • GetSchemaTypeName Metod. Den här metoden tar en Type och returnerar ett XmlQualifiedName som representerar namnet på den XSD-schematyp som skulle användas om den här typen exporterades till schemat. För IXmlSerializable typer som representeras som anonyma typer i schemat returnerar nullden här metoden .

  • GetSchemaType Metod. Den här metoden fungerar bara med IXmlSerializable typer som representeras som anonyma typer i schemat och returnerar null för alla andra typer. För anonyma typer returnerar den här metoden en XmlSchemaType som representerar en viss Type.

Exportalternativen påverkar alla dessa metoder.

Se även