当前位置: 首页 > 面试题库 >

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

龙洛城
2023-03-14
问题内容

因此,当尝试使用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根本没有意义。

有时,当我们问这个问题时,我们会得到答案“因为客户坚持认为是那样”。作为专业人士来培训客户是我们的工作:他们付账单,并且即使是他们想要的那样,将钱花在糟糕的工程上也是不负责任的。



 类似资料:
  • 因此,当我尝试使用jaxb从java类构建xml时,会遇到以下问题。我的第一个标签应该是这样的: 我需要第一个标签来写一些东西,但最后一个标签只需要有实体。 我创建了一个claas并添加了@XMLRootElement名称=实体的标签,并使用它我有正确的最后一个标签。如果我使用我在第一个和结束标记中的整个表达式,这对我没有帮助。 我添加了一个带有@XMLAttribute的 String 变量,这

  • 我正在建立一个应用程序,用户将把他们的测试和作业和任何东西。我想知道我的应用程序是否有可能在测试前一周和一天发出通知? 我看到的到处都是firebase通知和push通知。 我不想要这些在线通知,我将需要应用程序发送他们自己离线。这可能吗?

  • 问题内容: 我已经使用提交按钮在ajax中发送了数据,而没有刷新任何页面。但是页面刷新了。 请检查我的代码,让我知道问题所在。 ajax.php 问题答案: js已经阻止了表单提交 问题中的代码 已经 阻止了此行提交表单: 这意味着:问题中的JavaScript代码根本没有运行。 该表格尚不存在 这里的问题是当此行代码运行时: 那个元素还没有加入dom 。因此,提交处理程序不附加任何内容-表单提交

  • 问题内容: 我需要一种从try / catch块的中间中断而又不会引发异常的方法。类似于中断并继续for循环的操作。这可能吗? 我对于抛出一个自定义异常(将其命名为“ BreakContinueException”)变得很奇怪,该异常在其catch处理程序中什么都不做。我敢肯定这很扭曲。 因此,我不知道任何直接的解决方案吗? 问题答案: 正确的方法可能是通过将try-catch块放在单独的方法中来

  • 用于发送推式通知的Worklight适配器代码似乎要求提供徽章号。我需要发送通知,但是,不想更新应用程序上的徽章号码。 当我尝试在没有徽章的情况下发送通知时(即不使用:notification.APNS.badge=MYBADGENUMBER定义徽章),会收到以下错误: 是否有任何方法可以避免发送徽章号码进行更新? 使用Worklight 6.0.0.20130909-1459。