2012-04-10 15 views
1

XHTMLエンティティの参照をDOCTYPE DTD宣言なしでXMLテキストに埋め込む方法はありますか? DOCTYPE行は、ターゲットとするJavaサーバーで問題を引き起こしています。XHTMLをDOCTYPE、CDATAまたはエスケープなしでXMLに埋め込む方法

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

XMLデータファイルの代わりにスキーマ定義からDTDを参照することはできますか。

もっと広義に言えば、XHTML(または少なくともエンティティ参照)をXMLに埋め込んで検証したことは何ですか?

解決策の1つは、XHTML 1.0 DTD全体をスキーマに変換することですが、これは最善の考えのようには聞こえません。

答えて

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/> 
2

あらかじめ定義されている5つのエンティティ参照以外のエンティティ参照があり、doctypeを持たない場合、XMLはうまく構成されません。あなたは、またはちょうどでエンティティを拡大することをコントロールしている場合ので、元の世代を変更することで、代わりに&nbsp;

どちらかの

&#160;を使用して数値文字参照ではなく、名前の実体参照を使用している場合

あなたは大幅に物事を単純化します任意のxmlパーサーまたは単純なテキストを使用して、perlまたは同等のものを使用して置き換えます。 dtdまたはjsonまたは他のフォーマットで設定されたhtml(5)エンティティの完全なリストはここにありますhttp://www.w3.org/2003/entities/2007/

関連する問題