因此,当尝试使用jaxb从Java类构建xml时,出现以下问题。我的第一个标签必须是这样的:
<Entity Type=‘test-instance’> Some xml </Entity>
我需要第一个标记中写入一些内容,但最后一个标记仅需要具有实体。
我创建了一个claas,并使用name = Entity添加了@XMLRootElement标记,并使用此标记具有正确的最后一个标记。如果我使用整个表达式,那么我在first和close标记中都没有帮助。
我使用@XMLAttribute添加了String变量,因此可以在Entity之后添加其他内容。问题是,如果我使用值初始化变量,则会得到字符串双引号。例如
@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’=“”>
因此,我无法摆脱字符串中的引号。
我在想某种方法,要么对第一个Entity标签进行硬编码,要么使最后一个与我关闭不同的标签,但是找不到任何东西。
或另一个设置XMLAttribute的选项,即使未初始化String也是如此。我在XMLElement上看到了类似“ required”的内容,但是XMLAttribute不可用,而且我不确定它是否满足我的要求。
任何帮助将不胜感激。
谢谢
在XML应用程序中,原理应为:
(a)接收应用程序不应该在乎XML编写方式的无关紧要的词汇细节。(实现此目标的最佳方法是使用受人尊敬的XML解析器读取XML。)
(b)编写应用程序应该自由使用他们认为方便的任何词汇约定。(这意味着您可以使用任何适当的序列化库来编写XML。)
为属性选择单引号或双引号是这些无关紧要的词汇细节之一。
我们看到由于人们不遵守这些规则而在StackOverflow上出现了很多问题。
您尚未解释为什么需要生成单引号。可能是不遵循规则(a)的应用程序正在使用XML。在这种情况下,您应该修复它!如果您不能解决它,那么您将大大增加成本,实际上,使用XML根本没有意义。
有时,当我们问这个问题时,我们会得到答案“因为客户坚持认为是那样”。作为专业人士来培训客户是我们的工作:他们付账单,并且即使是他们想要的那样,将钱花在糟糕的工程上也是不负责任的。