首先,我想说我已经读过 http://blog.bdoughan.com/2011/11/jaxb-and-namespace-prefixes.html
我的应用程序中有多个包,比如
my.xml.pkg1 ,
my.xml.pkg2,
my.xml.pkg3,
my.xml.pkg4
等
>
如果这个问题的答案是“是”,那么会出现下一个问题 如果我放一个全局包信息.java那么我应该如何指定XmlSchema?命名空间字段应该是什么?
是否可以在一个包中包含多个 XmlRootElement?就像我在my.xml.pkg1中有2个包含XMLRootElement的java类,每个Root元素都有不同的命名空间?在这种情况下,我们如何指定架构?
以下是我对您问题的回答:
1-我需要把package-info.java在每个包?例如,package-info.java在pkg1,pkg2等?
package-info.java
是一种用于应用包级别元数据的 Java 机制。因此,放在一个包中的注释不会影响另一个包,这意味着您需要对每个包执行操作。
2 - 或全局包信息.java可以保存所有信息。就像我想把包信息.java文件放在my.xml包中,让它工作。
不,见问题1的答案。
3 -下一个问题出现了,如果这个问题的答案是“是”,如果我放一个全局package-info.java,那么我应该如何指定XmlSchema?名称空间字段应该是什么?
见对问题1的答复。
4 -一个包中可以有多个XmlRootElement吗?比如我在my.xml.pkg1中有两个包含XMLRootElement的java类,每个根元素都有不同的名称空间?在这种情况下,我们如何指定模式?
是的,每个包裹可以有多个@XmlRootElement
。每个类只能有一个,并且名称和命名空间的组合在用于引导 JAXBContext
的类的作用域中必须是唯一的。
如果您有对应于不同命名空间的元素,那么就 XML 架构而言,您将拥有导入其他架构的架构,因为单个 XML 架构对应于单个命名空间。
我正在开发一个客户端来使用 Web 服务,但由于某种原因,除非所有命名空间都正确且没有任何前缀,否则我的请求没有得到正确处理。 我所有的类都是由服务提供商使用提供的XSD和WSDL创建的。 NfeDadosMsg.class 包装信息.java TConsStatServ.class package br.inf.portalfiscal.nfe; 包装信息.java 输出xml: 由于某种原因,
面临使用JAXB解组的问题。我需要使用多个名称空间。Java类是为第三方提供的XSD生成的。因此,我不想在Java类中的XMLRootElement指定名称空间,也不想手动更改多个类。 编组逻辑如下: xmlelement类TokenRequest.java BasicInRequestType.java 我在package-info.java中指定了前缀 TokenRequest元素实际上引用了
2)如果我按照下面的方式编辑package-info,那么它是很好的,但是问题是我创建的是一个JAXB整数元素如下所示,前缀删除没有应用于这些元素
我有5个schemas.xsd,用于生成Java类,然后封送XML文件。 问题是只有一种情况--对于这个文件,JAXB生成额外的名称空间前缀NS2。这是非常奇怪的,因为所有模式都是相同的,并且编组机制对于所有模式都是通用的。 生成机制: 对于不能正常工作的包: 包信息: 对象-工厂 良好工作包: 包信息: 和对象工厂看起来完全一样(当然除了命名)。
问题内容: 除了包级别注释外,还有其他方法可以使用注释来控制自定义名称空间前缀。 可以在元素级别完成吗?也可能有一个带有多个前缀的名称空间吗? 问题答案: 您实际上想做什么?为什么名称空间前缀对您很重要? 对于命名空间前缀,没有标准的元素级注释。 我知道的控制名称空间前缀的选项是: 你已经提到过。 提供习俗。 XML的低级处理(例如,在StAX,SAX或DOM级别)。 我也可以想象: / 通常使用
我使用JAXB从SOAP响应中解析xml元素。我已经为xml元素定义了POJO类。我已经测试了没有名称空间和前缀的pojo类,它工作得很好。需求是解析来自SOAPMessage对象的输入