1

内容を制御できない DTD ファイルをロードして読み取りたい。これらの DTD ファイルには、文字「-」を含む行が含まれています。

<!ELEMENT Test-ITD - O (警告) >

したがって、次のコードは「-」の位置で失敗します

XmlReaderSettings settings = new XmlReaderSettings();
settings.CheckCharacters = false;
settings.DtdProcessing = DtdProcessing.Parse;
XmlReader reader = XmlReader.Create(strURL, settings);
XDocument xml = XDocument.Load(reader);

不正な文字を含む DTD を読み取ることはできますか?

4

1 に答える 1

1

あなたの DTD は、XML ではなく SGML を処理するシステム用に設計されているようです。それについて何をすべきかを言うのは難しいですが、XML ライブラリーが DTD を拒否することは驚くべきことではありません。

- Oこの要素宣言の部分は、「<!ELEMENT Test-ITD - O (warning) >最小化パラメーター」を提供します。これは、要素の終了タグを省略できることを意味します。これは、SGML では使用できますが、XML では使用できない機能です。

問題のある 2 番目の要素宣言がコメントに記載されています。

<!ELEMENT emphasis (#PCDATA | quantity | indexFlag | emphasis | subScript | superScript | captionGroup)+ >

「混合コンテンツ」に関する制限のため、この構成は機能しません。数量詞は使用+できません。のみ*が許可されます。

参考文献:

于 2015-06-08T14:56:22.413 に答える