我希望處理包含非常大且複雜的模式的XML文件。我知道我們可以使用DataImportHndler來處理這種類型的數據,但是在檢索結果時,我們沒有以與文件中相同的方式獲取數據。我希望得到XML格式的結果以及JSON格式。將大型複雜XML文件處理爲Solr
xml的結構非常複雜,所以我無法使用XPath Parser作爲結果。 對我的問題有其他解決方案嗎?我認爲在處理龐大而複雜的數據時,我們中的幾個人遇到了這種情況。
波紋管是XML文件架構的只是一個例子:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="chapter">
<xs:complexType>
<xs:sequence>
<xs:element ref="sentence" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="required" />
<xs:attribute name="title" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="report">
<xs:complexType>
<xs:sequence>
<xs:element ref="toc" />
<xs:element ref="chapter" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sentence">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="ref" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="toc">
<xs:complexType>
<xs:sequence>
<xs:element ref="tocitem" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="substructure">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="class" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="substructures">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="substructure" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="tocitem">
<xs:complexType>
<xs:attribute name="chapter" type="xs:IDREF" use="required" />
</xs:complexType>
</xs:element>
這很簡單,如果你忘記DataImportHandler並改寫一些代碼。 –