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已经一年了。提前谢谢