1

DOCTYPE DTD 宣言なしで XHTML エンティティ参照を XML テキストに埋め込む方法はありますか? DOCTYPE 行が対象の Java サーバーで問題を引き起こしています。

&; のエスケープ シーケンスは受け入れられず、CDATA に埋め込むこともできません。参照を検証する必要があります。

XML データ ファイルではなく、スキーマ定義から DTD を参照できます。

より大まかに言えば、XHTML (または少なくともエンティティ参照) を XML に埋め込み、それを検証するための一般的な方法は何ですか?

考えられる解決策の 1 つは、XHTML 1.0 DTD 全体をスキーマに変換することですが、これは最良のアイデアとは思えません。

4

2 に答える 2

3

PUBLIC または SYSTEM 識別子なしで DOCTYPE を試しましたか?

ENTITY 宣言を内部サブセットに直接追加することもできます。

<!DOCTYPE foo [
<!ENTITY nbsp   "&#160;">
<!ENTITY copy   "&#169;">
<!ENTITY laquo  "&#171;">
<!ENTITY reg    "&#174;">
<!ENTITY deg    "&#176;">
<!ENTITY plusmn "&#177;">
<!ENTITY sup2   "&#178;">
<!ENTITY sup3   "&#179;">
<!ENTITY frac14 "&#188;">
<!ENTITY frac12 "&#189;">
<!ENTITY frac34 "&#190;">
]>
<foo/>

または、パラメーター エンティティを使用して、ENTITY 宣言を持つ外部ファイルを指すことができます。

<!DOCTYPE foo [
<!ENTITY % ents SYSTEM "xhtml-lat1.ent">
%ents;
]>
<foo/>
于 2012-04-10T20:36:40.857 に答える
2

定義済みの 5 つ以外のエンティティ参照があり、doctype がない場合、XML は整形式ではありません。

名前付きエンティティ参照ではなく数字参照を使用すると、物事が大幅に簡素化されます。

&#160;それ以外の&nbsp;

それを制御する場合は元の世代を変更するか、xmlパーサーを使用してエンティティを拡張するか、perlまたは同等のものを使用して単純なテキストを置き換えます。ここで、dtd または json またはその他の形式で設定された html(5) エンティティの完全なリストを取得できますhttp://www.w3.org/2003/entities/2007/

于 2012-04-10T20:47:26.420 に答える