2009-01-27 15 views
5

Estoy buscando una herramienta para semiautomática Generación XSLT. archivosCómo generar XSLT a partir de muestras XML

Dado 2 XML, fuente:

<elm>XXX</elm> 

y objetivo:

<exx>XXX</exx> 

La herramienta debe hacer que el archivo XSLT, que produce el blanco desde la fuente. Al examinar el contenido, debe identificar los cambios en el nivel, la ubicación, los nombres de los elementos, etc. No existe una solución general para este, pero necesitaría solo transformaciones simples.

Posible aplicación:

1. scan the source, map XML data "XXX" to element path "elm" 
2. scan the target, map XML data "XXX" to element path "exx" 
3. output target XML structure, output XSLT mapping of "XXX", "elm" -> "exx" 

En caso de conflictos es necesaria la intervención manual. Un conflicto podría ser "XXX" en más que en su lugar en la fuente.

Sería bueno si la herramienta también estuviera atenta a XSD/DTD, por ejemplo para realizar asignaciones manuales de "campos".

Editar: aclaración.

+0

necesita aclarar la magnitud de las diferencias que espera que supere y cuán únicos son los datos para que sea posible inferir el mapeo de un archivo a otro; creo que es factible hasta algunos límites. –

Respuesta

9

Dudo que incluso las reglas simples de transformación se puedan generar automáticamente.

Por ejemplo tomar el XML

<family> 
    <father>Paul</father> 
    <mother>Maria</mother> 
    <child>Paul</child> 
</family> 

y el objetivo

<person>Paul</person> 

que debe ser una combinación bastante común. Ni siquiera pude decidir manualmente (sin ayuda del que desea la transformación) desde qué etiqueta se ha creado el destino <person>, desde <father> o <child> así que dudo que una aplicación produzca algo sano aquí.

Actualización: Si algún tipo de fricción & desplegable XSLT generación estaría bien para ti, hay algunos productos comerciales disponibles, pero que no pueden producir XSLT desde un archivo de destino. Pero arrastre & gota debe ser al menos una solución mejor que escribirlo completamente a mano:

+0

Aclaración de la pregunta: en caso de conflicto, se requieren intervenciones manuales. –

+0

Terminé escribiendo el XSLT yo mismo, utilizando Stylos Studio, como sugirió, gracias. Stylus Studio tiene un mapeador XSLT, pero en mi caso fue inútil ya que solo era una asignación de elemento a elemento y también necesitaba seleccionar los atributos. Pero tiene una buena interfaz que incluye la depuración. Pero todavía necesita entender XSLT y XPath para usar realmente la cosa. –

+1

El enlace a Tiger XSLT Mapper ahora está muerto en el momento de escribir este comentario Feb 2016 – Blackvault

4

¿Ha comprobado Altova MapForce? No es freeware, pero creo que maneja lo que estás buscando. http://www.altova.com/mapforce.html

+0

Se parece al mapeador Stylus Studio XSLT, pero en mi caso era inútil, ya que era solo un elemento a la asignación de elementos y necesitaba seleccionar atributos también. Me gusta: para mapear a: . No probé MapForce, así que tal vez estoy equivocado. Los mapeadores de campo grafical también parecen bastante confusos cuando se aplican a campos de +30. Supongo que no hay una solución fácil. –

+0

MapForce es muy fuerte, y estoy seguro de que puede asignar atributos a las etiquetas. Solo he probado la demostración una vez para permitir que el software genere un XSLT para mí. Es una herramienta muy fuerte (y costosa), pero estoy 99% seguro de que cubrirá sus necesidades. Incluso puede producir XML a conversión EDI XSLT. – Skaue

2

He utilizado Altova Mapforce para generar XSLT para XML de gran tamaño y funciona bien. Puedes hacer casi todas las lógicas como lógica, función de cadena, funciones matemáticas y funciones definidas por el usuario, etc. Pero el caso es que cuando tu XML es muy grande, la araña como web a veces te confunde mucho y es desordenada, pero esto solo se espera. Y creo que el mantenimiento puede ser un poco difícil en altova.

Cuestiones relacionadas