2009-07-10 11 views
0

このXMLはOracleのテーブル構造(PL/SQL開発者のエクスポートオプション)に使用しています。エンティティクラスを取得するためにC#でコードを生成するにはどうすればよいですか?OracleテーブルのC#コードを生成

<?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> 

ありがとう!

+4

コードは正確に何をするのですか? – Calanus

+0

なぜxml/xslタグ? – redsquare

+0

テーブルのPOCOクラスを意味しますか? – abhilash

答えて

0

xsd.exeを参照してください - このツールでは、サンプルxmlドキュメント(エクスポートフォームOracle)からxsdスキーマを作成し、与えられたxsdスキーマから.netクラスを作成できます。

サンプルコードが表示されているので、xsd.exeとの関連でxmlを使用する前にxmlを変換する必要があることは明らかです。

あなたが特定ののOracleプロバイダを使用する必要が.NET EntityFrameworkのオラクルのサポートを探している場合。 1つの例はDataDirectです。


スキーマを生成するためのサンプルXSLT

<?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> 

得スキーマ文書は、Xsd.exeではための入力として使用することができます。

関連する問題