/ / Creación dinámica de clases en Java [duplicado] - java, dinámico, reflexión, análisis xml

Creación dinámica de clases en Java [duplicado]: java, dinámica, reflexión, análisis de XML

Posible duplicado:
Crear clases dinámicamente en Java.

Tengo una consulta sobre el concepto de reflexión en Java.

Estoy tratando de crear un analizador XML SAX en Java. Lo que se debe hacer es crear una nueva clase que contenga los campos según el XML y usar la clase mientras se analiza. Pero este método será muy específico para el XML elegido.

Lo que estoy pensando es si hay¿De alguna manera puedo escribir un analizador XML (SAX) que funcione con todos los XML posibles? es decir, necesito crear una clase con campos contenidos en el XML dinámicamente y usar la misma clase para analizar el archivo XML.

Espero poder presentar mi pregunta con claridad.

Gracias.

Respuestas

0 para la respuesta № 1

Tuve una situación similar antes, pero mi analizador xml necesitaba alguna configuración. Mi enfoque fue tener: a) motor de análisis, b) configuración.

La parte de configuración se construye alrededor de expresiones XPath para pasar a través de las propiedades. Estas son expresiones XPath estáticas y requieren actualización si los cambios del mensaje XML de entrada.

La parte del motor de análisis ejecuta esas expresiones para consultar elementos xml, atributos, etc. para rellenar el objeto Java.

EDITAR:

Por ejemplo, un xml dado (simplificado, sin espacio de nombres):

<msg>
<something>
<somenode>
<version>1.0.0</version>
</somenode>
</something>
</msg>

Ejemplo de código: (simplificado)

String myXpExpr = "//version/text()";  // make it .properties
Document xmlDocument = DocumentBulderFactory.newInstance().newDocumentBuilder().parse(xmlInputStream);
XPath xpXPath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpXPath.compile(myXpExpr);
resultObject = expr.evaluate(xmlDocument, returnTypeQName);

Esto le daría "1.0.0" como resultado de objeto.