2011-10-11 113 views
2

我正在使用JAXB解组SOAP消息,虽然大部分消息在解组时都显示正常,但其内容应为纯文本时,其中一个元素为空。如果我改变其内容的XML(如<Test> Something </test>,它工作正常使用JAXB解组SOAP SOAP消息ANY元素为空(空)

我beleive描述这部分的架构如下:

<xsd:complexType name="NotificationMessageHolderType" > 
      <xsd:sequence> 
       <xsd:element name="Topic" 
          type="wsnt:TopicExpressionType" 
          minOccurs="1" maxOccurs="1" /> 
       <xsd:element name="ProducerReference" 
          type="wsa:EndpointReferenceType" 
          minOccurs="1" maxOccurs="1" /> 
       <xsd:element name="Message" type="xsd:anyType" 
          minOccurs="1" maxOccurs="1" /> 
      </xsd:sequence> 
     </xsd:complexType> 

的问题是,在这种模式中的最后一个元素时,消息元素,它的类型是“xsd:anyType”,是不是表示它可以容纳任何东西?但是,当用JAXB解组时,任何非结构化内容(逐字文本)似乎都被忽略。为什么,以及我可以采取什么措施来纠正这种情况?

问候, Eflite

回答

2

This page(注意,Wayback机器的已归档项目)是寻找答案的最佳场所;它为如何解决您的情况提供了一个清晰的例子。

我从那里报价: “如果你需要元帅任意内容你必须按照org.w3c.dom中创建内容树Sun的JAXB目前使用的Apache的Xerces,即类的实现apache.xerces.internal.dom.ElementNSImpl“。