El analizador XML no se queja, pero el editor XML se queja de los atributos vacíos

StackOverflow https://stackoverflow.com/questions/1404218

  •  05-07-2019
  •  | 
  •  

Pregunta

Tengo un programa que utiliza XSL-FO (org.apache.fop.apps.Driver) para generar una impresión de PDF desde un archivo XML.

Estoy trabajando en las hojas de estilo (xsl) & amp; Estoy tratando de hacer la depuración más fácil. Tengo el XML y amp; el archivo XSL, ahora solo quiero que mi editor me muestre el PDF generado mientras estoy trabajando en el archivo XSL.

Probé varios editores & amp; dieron errores con los que el programa no parece tener ningún problema.

parece que el problema es que el editor espera ver:

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value="" />

mientras que el XML real que genera el programa es

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

Como puede ver, el valor attr_value vacío simplemente falta el = " " . ¿Hay alguna forma de que haga que el editor sea menos estricto? ¿Entonces puede generar el PDF tal como lo hace el programa que tengo?

¿Fue útil?

Solución

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

Esa línea no es válida como se ha mencionado anteriormente. El programa que cree que está bien probablemente esté usando su propio analizador XML personalizado que simplemente ignorará estos atributos no válidos. Me hace dudar sobre las cualidades de programación de las personas que crearon ese programa. Me parece que solo están escribiendo este XML como texto a través de un mecanismo XML-DOM. Aún así, eso debería estar bien, pero desafortunadamente, su código tiene un error.

La mayoría, si no todos, los editores, analizadores y transformadores de XML validarán el XML antes de procesarlo. Desafortunadamente, no hay una buena solución para solucionar este problema desde el archivo XSLT. Con un RegEx, puede eliminar los atributos no válidos o hacerlos válidos agregando = " " para ellos, pero no hay forma de hacer esto antes de que el XSLT valide el XML.

Para resolver esto, el programa necesita ser cambiado para generar XML válido. Porque en este momento, esto podría ser considerado un error muy serio. (A menos que el programa solo use este XML falso para propósitos internos).

Otros consejos

El XML con attr_value y no = no es válido Especificación XML del W3C y por eso todas las herramientas XML deben quejarse. ¿Qué herramienta estás usando?

Bien, acabo de usar la Búsqueda de expresiones regulares & amp; reemplace todos los nombres de atributos, si no terminan con = " " luego agregue eso, ahora todo parece estar bien ... cojo, pero está bien para mis necesidades en este momento

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top