2009-07-10 6 views
0

J'ai ce code XML pour une structure de table dans Oracle (option d'exportation dans un développeur PL/SQL). Comment puis-je générer du code en C# pour obtenir la classe d'entité?Générer du code C# pour la table Oracle

<?xml version="1.0" encoding="utf-8"?> 
<ROWDATA> 
    <ROW> 
    <Name>ID_TRANSACCION</Name> 
    <Type>NUMBER(12)</Type> 
    <Nullable></Nullable> 
    <Default></Default> 
    <Comments>Identificador unico de la transacci&#243;n.</Comments> 
    </ROW> 
    <ROW> 
    <Name>ID_RECIBO</Name> 
    <Type>NUMBER(12)</Type> 
    <Nullable></Nullable> 
    <Default></Default> 
    <Comments>Identificador unico del recibo.</Comments> 
    </ROW> 
    <ROW> 
    <Name>IMPORTE_COBRAR</Name> 
    <Type>NUMBER(10,2)</Type> 
    <Nullable>Y</Nullable> 
    <Default></Default> 
    <Comments>Importe a cobrar</Comments> 
    </ROW> 
</ROWDATA> 

Merci!

+4

Code pour faire quoi exactement? – Calanus

+0

pourquoi les balises xml/xsl? – redsquare

+0

Voulez-vous dire une classe POCO des tables? – abhilash

Répondre

0

Regardez dans xsd.exe - cet outil vous permet de créer un schéma xsd à partir d'un exemple de document XML (votre formulaire d'exportation Oracle) et de créer une classe .net à partir d'un schéma xsd donné.

Maintenant que votre exemple de code est visible, il est clair que vous devrez transformer le fichier XML avant de pouvoir l'utiliser avec xsd.exe.

Si vous êtes à la recherche d'un soutien oracle du EntityFramework .NET vous devez utiliser un spécifique fournisseur Oracle. Un exemple serait DataDirect.


échantillon XSLT pour la génération de schéma

<?xml version="1.0" encoding="utf-8" ?> 
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsl:output method="xml" omit-xml-declaration="no" indent="yes"/> 

    <xsl:template match="/"> 
     <xsl:element name="xsd:schema"> 
      <xsl:attribute name="attributeFormDefault"> 
       qualified 
      </xsl:attribute> 
      <xsl:attribute name="elementFormDefault"> 
       qualified 
      </xsl:attribute> 
      <xsl:apply-templates /> 
     </xsl:element> 
    </xsl:template> 

    <xsl:template match="ROWDATA"> 
     <xsl:element name="xsd:element"> 
      <xsl:attribute name="name"> 
       <xsl:value-of select="local-name()"/> 
      </xsl:attribute> 
      <xsl:element name="xsd:complexType"> 
       <xsl:element name="xsd:sequence"> 
        <xsl:apply-templates /> 
       </xsl:element> 
      </xsl:element> 
     </xsl:element> 
    </xsl:template> 

    <xsl:template match="ROW"> 
     <xsl:element name="xsd:element"> 
      <xsl:attribute name="name"> 
       <xsl:value-of select="./Name"/> 
      </xsl:attribute> 
      <xsl:attribute name="nillable"> 
       <xsl:value-of select="contains(./Nullable, 'Y')"/> 
      </xsl:attribute> 
      <xsl:if test="./Default != ''"> 
       <xsl:attribute name="default"> 
        <xsl:value-of select="./Default"/> 
       </xsl:attribute> 
      </xsl:if> 
      <xsl:element name="xsd:annotation"> 
       <xsl:element name="xsd:documentation"> 
        <xsl:value-of select="./Comments"/> 
       </xsl:element> 
      </xsl:element> 
      <xsl:element name="xsd:simpleType"> 
       <xsl:element name="xsd:restriction"> 
        <xsl:attribute name="base">xsd:decimal</xsl:attribute> 
        <!-- elaborate data type here --> 
       </xsl:element> 
      </xsl:element> 
     </xsl:element> 
    </xsl:template> 
</xsl:stylesheet> 

Le document de schéma résultant peut être utilisé comme entrée pour xsd.exe.

Questions connexes