Я хочу обработать 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 и вместо этого напишите код. –