我正在使用 Spark XML 解析包含一些用户定义实体的大型文档。这是文件中的一个简单片段
<JMdict>
<entry>
<ent_seq>1000000</ent_seq>
<r_ele>
<reb>ヽ</reb>
</r_ele>
<sense>
<pos>&unc;</pos>
<gloss g_type="expl">repetition mark in katakana</gloss>
</sense>
<sense>
<gloss xml:lang="dut">hitotsuten 一つ点: teken dat herhaling van het voorafgaande katakana-schriftteken aangeeft</gloss>
</sense>
</entry>
</JMdict>
可以在 XML 文档中找到的内联 DTD 中正确定义了实体,例如这里
<!ENTITY unc "unclassified">
但是,在模式检测阶段解析失败......
root
|-- _corrupt_record: string (nullable = true)
原因似乎是用户定义的实体:当我转义它们(例如&unc;
)时,一切都会再次运行。
root
|-- ent_seq: string (nullable = true)
|-- r_ele: struct (nullable = true)
| |-- reb: string (nullable = true)
|-- sense: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- gloss: struct (nullable = true)
| | | |-- _VALUE: string (nullable = true)
| | | |-- _g_type: string (nullable = true)
| | | |-- _lang: string (nullable = true)
| | |-- pos: string (nullable = true)
我该如何解决这个问题?