2011-10-07 25 views
7

如果我使用属性视图在XML模式中编写多行文档,它将创建<xsd:documentation>标签来包含它。有没有办法阻止Eclipse(3.7)搞乱<xsd:documentation>标签的内容?

每当我格式化文件(CTRL + SHIFT + F)时,除第一行之外的所有行都缩进,有时由于此缩进而被换行。

这种缩进和包装有效地破坏了从文件生成漂亮的文档所做的一切努力。尤其是如果我想记录一个允许值的表格。

格式之前:

<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> 

格式后:

<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> 

首选项中的 “格式的注释” 选项 - > XML - > XML文件 - >编辑器不与帮助缩进。在相同的首选项页面上增加“线宽”可以修复包装,但我真的希望编辑器不要格式化我的文档元素的内容。

回答

4

您可以将xml属性xml:space="preserve"添加到xsd:documentation以指示必须保留空格。例如:

<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

我更喜欢使用此属性,而不是添加CDATA标签,它看起来更干净,它是自我解释而且我不必明确告诉Eclipse忽略CDATA封装的文本。我的诀窍是将所有多行文本添加到一行中,在Eclipse中使用格式代码,然后添加xml:space属性以保留格式。 – JavaJedi

0

设置选项“保留带有PCDATA内容的标记中的空白”选项。

+0

这真的好像是要设置的东西。但是,当我尝试它时没有任何影响。由于我的问题是关于编辑一个XML模式文件,我还测试了一个简单的XML文件,这个选项集,但我仍然得到相同的结果。你是否尝试过这个问题的片段? 我也注意到,如果我应用格式化命令两次,文件重新格式化两次。第三次做这个没有额外的改变。 – cb2

+0

这是因为你没有任何东西告诉eclipse,文档元素内部是PCData元素,请参阅[Eclipse bug 361708](https://bugs.eclipse.org/bugs/show_bug.cgi?id= 361708)。 – PhoneixS

1

“格式的注释”选项用于XML注释:

<!-- comment --> 

这就是为什么它,你想不工作。

我不明白你在将“线宽”选项设置为最大(在版本3.7中是999)时面临什么问题。

如果你的XML是:

<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> 

然后“线宽”设置为999和格式不会改变您的内容。不幸的是,有没有选项来关闭宽度检查(例如设置“线宽”为0)。

编辑: 看来,当您使用< [CDATA [,Eclipse是不是在格式化的内容(至少缩进和换行),例如:

<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

当然,我可以设置线宽,但问题是我已经以特定的格式编写文档,并且Eclipse不断重新格式化它。不仅包装线,而且还包括缩进。当我尝试从XML Spy等工具生成文档时,文档格式不完整,部分原因是Eclipse添加了缩进。 – cb2

+0

也是这样的,Eclipse本身通过格式化文档使得文档在属性编辑器中看起来很奇怪。 – cb2

+0

我明白了,也许你应该从[Eclipse Marketplace](http://marketplace.eclipse.org/search/apachesolr_search/xml?page=1&mpc=true&mpc_state=)尝试一些插件并找到更好的XML编辑器。 – Betlista

1

尝试使用它像这样:

<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> 

而且,尝试设置

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

在你的文件中,如果你还没有使用它。 xml中的新行可能会在ASCII和UTF-16之间产生问题

相关问题