2011-10-07 10 views
7

Si escribo documentación multilínea en un esquema XML utilizando la vista de propiedades, crea <xsd:documentation> etiquetas para contenerlo.¿Hay alguna manera de evitar que Eclipse (3.7) estropee el contenido de las etiquetas <xsd: documentation>?

Cada vez que formateo el archivo (CTRL + MAYÚS + F), todas las líneas, excepto la primera, están sangradas y, a veces, envueltas debido a esta sangría.

Esta sangría y envoltura con eficacia arruina cada esfuerzo de generar una buena documentación del archivo. Especialmente si quiero documentar una tabla de valores permitidos.

Antes formato:

<xsd:documentation>1st line of comment 
2nd line is indented and also wrapped as it exceeds the max line length setting. 
3rd line is just indented. 
</xsd:documentation> 

Después formato:

<xsd:documentation>1st line of comment 
    2nd line is indented and also wrapped as it exceeds the max line 
    length setting. 
    3rd line is just indented. 
</xsd:documentation> 

La opción "Formato de comentarios" en Preferencias -> XML -> archivos XML -> Editor no ayuda con la sangría El aumento de "Ancho de línea" en la misma página de preferencias corrige el ajuste, pero realmente quiero que el editor NO formatee mi contenido en los elementos de mi documentación.

Respuesta

4

Puede agregar un atributo xml xml:space="preserve" al xsd:documentation para indicar que se deben preservar los espacios. Por ejemplo:

<xsd:documentation xml:space="preserve" >1st line of comment 
    2nd line is indented and also wrapped as it exceeds the max line length setting. 
    3rd line is just indented. 
</xsd:documentation> 
+0

Prefiero usar este atributo en lugar de la etiqueta CDATA agregada, se ve más limpio, es autoexplicativo y no tengo que decirle explícitamente a Eclipse que ignore el texto ajustado de CDATA. Mi truco es agregar todo mi texto multilínea en una sola línea, usar el código de formato en Eclipse y luego agregar el atributo xml: espacio para preservar el formato. – JavaJedi

0

Establezca la opción "Conservar espacio en blanco en las etiquetas con contenido PCDATA".

opción
+0

Eso realmente parece ser lo que hay que establecer. Pero no tiene ningún efecto cuando lo intento.Como mi pregunta era sobre la edición de un archivo de esquema XML, también probé un archivo XML simple con esta opción establecida, pero sigo obteniendo los mismos resultados. ¿Has probado el fragmento de la pregunta? También he notado que el archivo reformatea dos veces si aplico el comando de formato dos veces. Hacerlo por tercera vez no tiene cambios adicionales. – cb2

+0

Esto se debe a que no tiene nada que le indique a eclipse que lo que hay dentro del elemento de documentación es un elemento PCData, consulte [error Eclipse 361708] (https://bugs.eclipse.org/bugs/show_bug.cgi?id= 361708). – PhoneixS

1

"Formato comentarios" es para comentarios XML:

<!-- comment --> 

Es por eso que no está funcionando como se desea.

No entiendo qué problema está enfrentando al configurar la opción de "ancho de línea" al máximo (en la versión 3.7 es 999).

Si el XML es:

<xsd:documentation>1st line of comment 
    2nd line is indented and also wrapped as it exceeds the max line length setting. 
    3rd line is just indented. 
</xsd:documentation> 

A continuación, el establecimiento de "ancho de línea" a 999 y el formato no cambia su contenido. Desafortunadamente existe la opción no para desactivar la verificación de ancho (por ejemplo, para establecer "ancho de línea" en 0).

edición: parece que cuando se utiliza < [CDATA [, Eclipse no se formatear el contenido (al menos sangría y el ajuste de línea), ejemplo:

<root> 
    <documentation><![CDATA[ 
       1st line of comment 

       2nd line is indented and also wrapped as it exceeds the max line length setting. 

       3rd line is just indented. 
     ]]></documentation> 
</root> 
+0

Claro que puedo establecer el ancho de línea pero el problema es que he escrito documentación en un formato específico y Eclipse sigue formateándola. No solo se agrega el ajuste de línea sino también la sangría. Cuando trato de generar documentación desde una herramienta como XML Spy, la documentación está mal formateada, en parte debido a la sangría agregada por Eclipse. – cb2

+0

También ocurre que Eclipse, al formatear la documentación, hace que la documentación parezca muy extraña en el editor de propiedades. – cb2

+0

Veo, tal vez debería probar algunos complementos de [Eclipse Marketplace] (http://marketplace.eclipse.org/search/apachesolr_search/xml?page=1&mpc=true&mpc_state=) y encontrar un mejor editor de XML. – Betlista

1

intente utilizarlo como esto :

<xsd:documentation><![CDATA[ 1st line of comment 
2nd line is indented and also wrapped as it exceeds the max line 
length setting. 
3rd line is just indented.]]></xsd:documentation> 

sino también, tratar de establecer

<?xml version="1.0" encoding="UTF-16"?> 

en su archivo, si aún no lo está utilizando. Las nuevas líneas en xml pueden ser problemáticas entre ASCII y UTF-16

Cuestiones relacionadas