1

ファイルを記述する XML 1.0 アプリケーションを作成しています (他の人が行ったように)。現在、属性fileを必要とする要素があります。nameその属性の値はファイルの名前です。

しかし、私はこれがうまくいかないと信じています。&<'などの特殊文字を含むファイル名"は扱いにくいですが、定義済みのエンティティ参照を使用できます。しかし、制御文字を含むファイル名についてはどうでしょうか? 非常にまれですが、これらの可能性があります。

XML (1.0) では、テキスト内のどこにも制御文字を使用できないため、この目的のために XML アプリケーションを作成する方法はないように思えます。標準を引用する:

文字 ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

これを回避するためのトリックはありますか?XML 1.1 で動作しますか?それとも制限がありますか?


私の GNU/Linux コンピューターでは、これを実行して、名前に制御文字を含む 2 つのファイルを作成できます。

 touch `echo -e 'SP\a'`
 touch `echo -e 'SP\v'`
 ls SP*
4

1 に答える 1

0

XML 1.1 では、NUL (コードポイント 0) を除くすべての文字を表すことができます。制御文字は、数字参照としてエスケープする必要があります。

NUL を含むすべての文字が必要な場合は、独自のエスケープ規則を定義する必要があります。URI に使用される規則 (%HH) または Java で使用される規則 (\uNNNN) を採用することも、独自の規則を発明することもできます。

于 2012-02-06T18:39:42.087 に答える