有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

xml如何在不使用java双引号的情况下发送Jaxb XmlAttribute数据

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

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

我需要在第一个标记中写入一些内容,但最后一个标记只需要有实体

我创建了一个claas并添加了@XMLRootElement标记,其名称为Entity,使用该标记我得到了正确的最后一个标记。如果我使用第一个和结束标记中的整个表达式,这对我没有帮助

我添加了一个带有@XMLAttribute的字符串变量,以便在实体之后添加其他内容。问题是,如果我用value初始化变量,就会得到字符串双引号。比如

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

当我构建这个时,它会读到:

<Entity Type=“test-instance”>

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

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

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

这将很好地工作,但如果变量未初始化,那么它将不会添加任何内容,如果写入字符串x=“”; 然后我会得到:

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

所以我不能去掉字符串中的引号

我在想,要么硬编码第一个实体标签,要么在最后一个实体标签上关闭它,但什么都找不到

或者使用另一个选项设置XMLAttribute,即使字符串未初始化。我在XMLElement上看到了类似“required”的东西,但它不适用于XMLAttribute,我不确定它是否能满足我的需要

任何帮助都将不胜感激

谢谢


共 (1) 个答案

  1. # 1 楼答案

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

    (a)接收应用程序不应该关心XML编写过程中微不足道的词汇细节。(实现这一点的最佳方法是使用一个值得尊敬的XML解析器来读取XML。)

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

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

    我们看到很多关于堆栈溢出的问题是由于人们不遵守这些规则造成的

    您还没有解释为什么需要生成单引号。可能XML被不遵循规则(a)的应用程序使用。那样的话,你应该把它修好!如果您无法修复它,那么您将大大增加成本,事实上,使用XML几乎没有意义

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