XMLがHTML文字エンティティで構成されている場合、次のように例外がスローされます
[com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxParsingException: Undeclared general entity "ensp"
at [row,col {unknown-source}]: [1,66475]
一般的なエンティティを宣言した方法があるので、この例外に対処する必要はありません。
解析しているXMLを編集でき、XMLのドキュメントの先頭にDOCTYPE宣言がある場合、次のエンティティ宣言を追加する必要がありますensp
。
<!ENTITY ensp " ">
XMLを編集できても、DOCTYPE宣言がない場合は、次のような一般的なものを作成できます。
<!DOCTYPE root [
<!ELEMENT root ANY>
<!ENTITY ensp "Ὸ">
]>
... content ...
where root
は、使用しているXMLデータのドキュメント要素(ルート要素)に置き換えられます。
すべてのHTMLエンティティを(だけでなくensp
)数値文字エンティティに展開する場合は、https ://www.w3.org/TR/html5/single-page.html#named-character-referencesまたはhttp: //sgmljs.net/docs/html5.html#named-character-references。
XMLにアクセスできない、または変更できない、または変更したくない場合(ネットワークからプルする場合など)は、JavaのJAXP APIを使用してカスタムEntityResolver
また、カスタムエンティティリゾルバーを使用してXML解析パイプラインを用意します(https://docs.oracle.com/javase/8/docs/api/org/xml/sax/EntityResolver.htmlを参照)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加