終了

#PCDATA内に強制改行を挿入することはできますか?

New Here ,
Jul 03, 2003 Jul 03, 2003

リンクをクリップボードにコピー

コピー完了

XDocbookのドキュメント内に、<br /><br />http://www.docbook.org/tdg/en/html/informalexample.html<br /><br />に見られるような、<br /><br /><informalexample><br /> <programlisting><br /> int i = 0;<br /> int j = 0;<br /> ...<br /> </programlisting><br /><informalexample><br /><br />という記述を入れたいのですが、FrameMakerで開いたときに#PCDATA内の行間の改行を保存する方法、または明示的に強制改行を挿入する方法はありますか?<br /><br />できれば、各行を別個に<informalexample><programlisting></programlisting></informalexample>で括ることは避けたいのですが、ご教示をお願いします。

表示

1.2K

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
New Here ,
Jul 03, 2003 Jul 03, 2003

リンクをクリップボードにコピー

コピー完了

read/write ルールの該当要素の部分に以下の記述を加えることで、解決を見ました。ありがとうございました。

preserve line breaks;

ただし、同じPCDATA領域で複数の空白文字が連続する場合、ひとつ以上の空白文字が無視されてしまうことがわかりました。

たとえば、次のような場合を想定しています:



int i = 0;
int name = 0;
int age = 0;



'= 0'の前に空白を入れて、すべての行で'=0'の位置が揃うようにしたいとします。

 のようなキャラクタエンティティを利用すればよいのでしょうが、見易さを優先すると、普通の空白文字を使いたいです。なにか方法はあるでしょうか?

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
New Here ,
Jul 03, 2003 Jul 03, 2003

リンクをクリップボードにコピー

コピー完了

「&nbsp」のようなキャラクタエンティティ、と半角英文字で書いたのですが、ブラウザでは空白にしか見えないので、質問の内容が伝わりませんでしたね。失礼しました。

XML文書中の空白や改行について少し考えてみたのですが、やはりXML中の空白文字に意味を持たせることは、改行も含めて、あまり得策ではないようです。よって、空白文字に意味を持たせることはあきらめて、&nbspを使うことにします。

ところで、もうひとつ追加質問があります。

FrameMaker7.0では、"preserve line breaks"を記述すると、CDATA中の改行がそのまま読み込まれるのですが、XML処理系一般ではCDATA中の空白が無視されます。よって、FrameMaker以外の処理系とXML文書を共用したい場合は、改行を入れるのも避けるべきだと感じます。

ついては、&nbspと同じように使える、改行用のエンティティがあればいいのですが、定義が見つかりません。何方か参考になるアイディアをお持ちでしょうか?

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
New Here ,
Jul 04, 2003 Jul 04, 2003

リンクをクリップボードにコピー

コピー完了

最新
taroikai様、こんにちわ。

別のトピ(整形されたXMLの読み込み)で、space文字の話題が出ているんですが、"nbsp"にしないと文字は削除されてしまいますか?
#PCDATA内のspaceは有効になると思うのですが。

で、改行用のエンティティ定義ですが、確かに聞いた事はないですね。
実現するには、HTMLのBRのような改行用要素をDTDで定義する方法になるかと思います。
但し、使用しているDTDの変更が可能かどうか、別問題ですが…。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines