Java 解析无效的xml

Java 解析无效的xml,java,xml,jaxb,xsd,Java,Xml,Jaxb,Xsd,我使用JAXB解析xml。当XML无效且带有附加标记时,我也想成功解析XML。只需忽略XSD中不存在的标记。有可能吗?我想你的意思是说格式良好的XML,但是包含架构中未定义的元素的XML 如果是这样的话,那么JAXB对此没有问题。输入XML中JAXB无法识别的任何元素都将被忽略 我的代码如下。Jaxb成功解析未知标记,在第一个未知标记之后,针对所有定义的标记,警告此标记为未知标记(打印“意外元素{}…”消息) `Unmarshaller Unmarshaller=context.createUn

我使用
JAXB
解析xml。当
XML
无效且带有附加标记时,我也想成功解析
XML
。只需忽略
XSD
中不存在的标记。有可能吗?

我想你的意思是说格式良好的XML,但是包含架构中未定义的元素的XML


如果是这样的话,那么JAXB对此没有问题。输入XML中JAXB无法识别的任何元素都将被忽略

我的代码如下。Jaxb成功解析未知标记,在第一个未知标记之后,针对所有定义的标记,警告此标记为未知标记(打印“意外元素{}…”消息)

`Unmarshaller Unmarshaller=context.createUnmarshaller();解组器。设置验证(false);ValidationEventHandler validationHandler=新的IwisValidationEventHandler(); setEventHandler(validationHandler)

公共类IwisValidationEventHandler实现ValidationEventHandler{ 私有静态记录器=Logger.getLogger(IwisValidationEventHandler.class); 公共布尔handleEvent(ValidationEvent ve){ System.out.println(ve.getMessage); 返回true; }
}`您可以添加xsd:any元素

<xsd:complexType name="Type">         
  <xsd:sequence>
    <xsd:element name="root" type="Root"/>
      <xsd:any maxOccurs="unbounded" processContents="lax"/>   
  </xsd:sequence> </xsd:complexType>
.....

.....

您能否指定尝试执行此操作时遇到的错误?您使用的是什么JAXB实现?有没有一段代码可以显示如何实例化解组器并解析XML?下面是我的代码。Jaxb解析成功,直到未知标记,从那时起,所有已知标记都无效。Unmarshaller Unmarshaller=context.createUnmarshaller();解组器。设置验证(false);ValidationEventHandler validationHandler=新的IwisValidationEventHandler();setEventHandler(validationHandler);公共类IwisValidationEventHandler实现ValidationEventHandler{private static Logger Logger=Logger.getLogger(IwisValidationEventHandler.class);公共布尔handleEvent(ValidationEvent ve){return true;}}}缺少的元素呢?我的意思是,我有一堆没有xsd的xml文档,我从xml生成模式(应该是这样的),但有时在一个xml文档中缺少元素。你能告诉我怎么处理吗?这一切都是关于修改模式和设置非强制性的元素吗?表示该元素的对象将是空的?我正在决定是使用jaxb还是为每个xml文档手动构建DOM,这并不好。但我上次使用jaxb已经一年了。提前谢谢