2010-03-26 7 views

Répondre

1

Jetez un oeil à cette question Stack Overflow sur XML serialization, qui mentionne un projet dans ce sens.

+0

Je pense que cela est plus orienté vers la création d'instances d'objets plutôt que créer les classes en premier lieu – vickirk

+0

Oui, mais il est peut-être plus facile de l'étendre que de le coder à partir de zéro. –

0

Sans connaître les détails, ma pensée immédiate serait probablement d'utiliser xslt pour cela. par exemple. si vous aviez quelque chose comme (j'apprécie

<element name="SomeEntity"> 
    <attribute name="someAttr" type="integer" /> 
    <complexType> 
    <sequence> 
     <element name="someOtherAttr" type="string" /> 
    </sequence> 
    </complexType> 
</entity> 

Créer un groupe de modèles pour traduire, par exemple

<xsl:template match="element"> 
    <xsl:apply-template select="." mode="header"/> 
    <xsl:apply-template select="." mode="impl"/> 
</xsl:template> 

<xsl:template match="element" mode="header"> 
class <xsl:value-of select="@name"/> { 
public: 
    <xsl:apply-template select="attribute" mode="header"/> 

    <xsl:apply-template select="complexType/element" mode="header"/> 
</xsl:template> 

... 

Bien que si la logique de la génération est plus complexe, je vais probablement sur la route de Importer le xml dans un modèle d'objet et le traiter par programme, éventuellement en utilisant un moteur de template tel que Velocity, alors qu'il est possible que la logique complexe dans xslt soit une douleur

Questions connexes