我有这个XML用于Oracle中的表结构(PL / SQL开发人员中的导出选项)。如何在C#中为get实体类生成代码?
<?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ó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>
谢谢!
答案 0 :(得分:0)
查看xsd.exe - 此工具允许您从示例xml文档(导出表单Oracle)创建xsd架构,并从给定的xsd架构创建.net类。
现在您的示例代码可见,很明显您需要先转换xml,然后才能将其与xsd.exe结合使用。
如果您正在寻找 .NET EntityFramework 的oracle支持,则需要使用特定的 Oracle提供商。一个例子是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的输入。