如何在没有java双引号

时间:2018-05-11 19:00:23

标签: java xml xml-parsing jaxb xml-serialization

因此,在尝试使用jaxb从java类构建xml时,我遇到了以下问题。 我的第一个标签必须是这样的:

<Entity Type=‘test-instance’>
Some xml
</Entity>

我需要第一个标签写入内容,但结束标签只需要实体。

我创建了一个claas并添加了带有name = Entity的@XMLRootElement标记,并使用此标识我有正确的最后一个标记。如果我使用整个表达式,我在第一个和结束标签中都没有帮助我。

我在@XMLAttribute中添加了一个String变量,所以我可以在Entity之后添加其他内容。问题是如果我用值初始化变量,我将得到String双引号。例如

@XMLAttribute(name=“Type”)
String x = “test-instance”;

当我构建它时,它将显示:

<Entity Type=“test-instance”>

,带双引号,我只需要单引号。

如果在xml属性中使用我需要的整个描述,例如:

@XMLAttribute(name=“Type=‘test-instance’”)
String x;

这样可以正常工作但是如果变量没有被初始化那么它就不会添加任何东西,如果写出类似String x =“”的东西; 然后我会得到:

<Entity Type=‘test-instance’=“”>

所以我无法摆脱来自我的String的引号。

我正在考虑要么硬编码第一个Entity标签,要么让最后一个我关闭它但不能找到任何东西。

或者设置XMLAttribute的另一个选项,即使String没有初始化。我在XMLElement上看到了类似“必需”的内容,但它不适用于XMLAttribute而我不确定它是否能满足我的需要它来。

感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:1)

在XML应用程序中,原则应该是:

(a)接收应用程序不应该关心如何编写XML的无关紧要的词法细节。 (实现此目的的最佳方法是使用可敬的XML解析器来读取XML。)

(b)编写应用程序应该可以自由使用他们认为方便的任何词汇约定。 (这意味着您可以使用任何可敬的序列化库来编写XML。)

为属性选择单引号或双引号是这些无关紧要的词汇细节之一。

我们发现StackOverflow上有很多问题是由不遵守这些规则的人造成的。

您尚未解释为什么需要生成单引号。也许XML不是遵循规则(a)的应用程序所使用的。在那种情况下你应该修复它!如果你无法修复它,那么你的成本就会大大增加,事实上,使用XML几乎没什么意义。

有时当我们提出这个问题时,我们会得到答案,“因为客户坚持这样做”。作为专业人士,我们的职责是教育我们的客户:他们支付账单,将钱花在糟糕的工程上是不负责任的,即使这是他们所说的。