解析包含xi的xml时面临的问题:包含jaxb
发布时间:2020-12-16 22:55:34 所属栏目:百科 来源:网络整理
导读:我正在使用JAXB来解析xml.我有一个如下的模式,以及在此模式上定义的两个xml文件a.xml和b.xml. a.xml与b.xml通过xi:include xml标记有依赖关系.请提交以下示例以获取更清晰的数据 I have followng schema definition:?xml version="1.0" encoding="UTF-8"?xs
我正在使用JAXB来解析xml.我有一个如下的模式,以及在此模式上定义的两个xml文件a.xml和b.xml. a.xml与b.xml通过xi:include xml标记有依赖关系.请提交以下示例以获取更清晰的数据
I have followng schema definition: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="Task"> <xs:complexType> <xs:sequence> <xs:element ref="Details" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Details"> <xs:complexType> <xs:sequence> <xs:element name="NAme" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 这是两个xml文件: A.XML: <?xml version="1.0" encoding="UTF-8"?> <Task xmlns:xi="http://www.w3.org/2001/XInclude"> <Details> <xi:include href="b.xml"/> </Details> </Task> B.XML: <?xml version="1.0" encoding="UTF-8"?> <Detail> <Name>Name1</Name> </Detail> <Detail> <Name>Name2</Name> </Detail> 现在我使用JAXB SAXFactory解析它: JAXBContext jaxbcon = JAXBContext.newInstance("schema-definition-jaxb-files"); unmar = jaxbcon.createUnmarshaller(); SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setXIncludeAware(true); XMLReader xr = spf.newSAXParser().getXMLReader(); SAXSource source = new SAXSource(xr,new InputSource(new FileInputStream(xmlfilename))); Object obj = unmar.unmarshal(source); 解析是成功的,但Details JAXB标记对象为null.无论如何,a.xml文件中的xi:include标记都没有展平.任何的想法? 解决方法
试试这个,它肯定有效:
public class Test { public String include; public static void main(String[] args) throws Exception { SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setXIncludeAware(true); spf.setNamespaceAware(true); XMLReader xr = spf.newSAXParser().getXMLReader(); SAXSource src = new SAXSource(xr,new InputSource("test.xml")); Test t = JAXB.unmarshal(src,Test.class); System.out.println(t.include); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- React-Native学习之第三方开源组件--侧滑栏----react-nativ
- c# – XML序列化 – XmlCDataSection为Serialization.XmlTe
- JavaScript+Regex 身份证号码的正则表达式及验证详解
- 【cocos2d-x游戏开发】Cocos2d-x中的内存管理
- Nand Flash & Nor Flash
- c# – 事件没有按顺序发生
- react-native 在android封装原生listView
- 端口聚合配置
- iphone – 如何进行向后搜索以找到第二个空格/空白并用另一
- ArcGIS API for Flex中的LayerDetails.layerDetails.displa