終了

XMLのエスケープ文字

積極的な参加者 ,
Nov 25, 2021 Nov 25, 2021

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

コピー完了

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root>
<Story>&#x0D;&#x0A;</Story>
</Root>

上記の様に、「段落の終わり」と「強制改行」をエスケープ文字にしたxmlを構造に読み込みました。

 

&#x0D; 段落の終わり

&#x0A; 強制改行

 

と思っていたのですが、読み込むと両方とも「段落の終わり」になってしまいます。

これはInDesignの構造でxmlを読み込む場合の仕様なのでしょうか?

 

強制改行をエスケープ文字にしたい場合は、どうすれば良いのでしょう?

DTDのエンティティで宣言するのでしょうか?

 

キーワード
読み込みと書き出し

表示

834

翻訳

翻訳

レポート

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

correct answers 1 件の正解

積極的な参加者 , Nov 26, 2021 Nov 26, 2021

&#x0D;

&#x0A;

の両方、「段落の終わり」になってしまうのですね

 

「xmlを書き出し」で「改行、空白、特殊文字を再マップ」をチェックせずに書き出すと

「段落の終わり」は、PARAGRAPH SEPARATOR(0x2029)に

「強制改行」は、LINE SEPARATOR(0x2028)に変換され

「xmlを読み込み」の際に元に戻される様ですので、それを利用して

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<!DOCTYPE MyEntity [
<!-- 0x2029 PARAGRAPH SEPARATOR -->
<!ENTITY CR "&#x2029;">

<!-- 0x2028 LINE SEPARATOR -->
<!ENTITY LF "&#x2028;">
]>

<Root>

<Story><!-- DTD Entity 段落の終わり-->&CR;<!-- DTD Entity 強制改行-->&LF;</Story>
<Story><!-- XML Entity(16進数) 段落の終わり-->&#x
...

投票

翻訳

翻訳
Community Expert ,
Nov 25, 2021 Nov 25, 2021

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

コピー完了

検索したら次のページが見つかりました。CS2の時代の話ですが、XMLの部分は今も変わっていないと思います。

https://dtp-bbs.com/indesignbbs/archives/11985xml_20070820112900.html

XMLを読み込んだ後にInDesign側で置換するしかない気がします。

投票

翻訳

翻訳

レポート

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

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

コピー完了

最新

&#x0D;

&#x0A;

の両方、「段落の終わり」になってしまうのですね

 

「xmlを書き出し」で「改行、空白、特殊文字を再マップ」をチェックせずに書き出すと

「段落の終わり」は、PARAGRAPH SEPARATOR(0x2029)に

「強制改行」は、LINE SEPARATOR(0x2028)に変換され

「xmlを読み込み」の際に元に戻される様ですので、それを利用して

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<!DOCTYPE MyEntity [
<!-- 0x2029 PARAGRAPH SEPARATOR -->
<!ENTITY CR "&#x2029;">

<!-- 0x2028 LINE SEPARATOR -->
<!ENTITY LF "&#x2028;">
]>

<Root>

<Story><!-- DTD Entity 段落の終わり-->&CR;<!-- DTD Entity 強制改行-->&LF;</Story>
<Story><!-- XML Entity(16進数) 段落の終わり-->&#x0A;<!-- XML Entity(16進数) PARAGRAPH SEPARATOR -->&#x2029;<!-- XML Entity(16進数) LINE SEPARATOR -->&#x2028;</Story>

</Root>

の様にしてみた処、強制改行をエスケープ文字で読み込む事が出来ました。

 

DTDのENTITYは興味深いですね、InDesignのテキスト変数の様に使えそう。

投票

翻訳

翻訳

レポート

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