xmlを解析するためにJAXBを使用しています。私は以下のようなスキーマと、このスキーマで定義された2つのxmlファイルa.xmlとb.xmlを持っています。 a.xmlには、xi:include xmlタグに依存する依存関係があります。今xmlの解析中に問題が発生しました。xi:contains with jaxb
<?xml version="1.0" encoding="UTF-8"?>
<Detail>
<Name>Name1</Name>
</Detail>
<Detail>
<Name>Name2</Name>
</Detail>
:
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より明確なデータここで
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>
ある2つのXMLファイルについては、以下の例を提出してください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);
構文解析に成功しましたが、詳細 JAXBタグオブジェクトはnullです。とにかく、a.xmlファイルのxi:includeタグはフラット化されません。何か案が?
何ドメインモデルがどのように見えるのでしょうか? –
Blaise、申し訳ありませんが、私はあなたを取得しませんでした。 wahtはドメインモデルですか? –
はい、あなたがマップしようとしているものが不思議です。 –