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, eller en List<T> av Type objekt, eller ett List<T> av Assembly objekt. I det sista fallet exporteras alla typer i alla angivna sammansättningar.

    Flera anrop till metoden Export resulterar i att 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.

    Anmärkning

    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 egenskapen för Options till en instans av klassen XsdDataContractExporter för att styra olika aspekter av exportprocessen. Mer specifikt kan du ange följande alternativ:

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 inkluderar:

  • 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