3

W3C XSD 1.0 Part 2: Datatypes仕様では、ID および IDREF 型の定義について W3C XML 1.0 仕様を参照していますが、これらのドキュメントのいずれも、これらの型の値の長さに関する制約を定義していません。

ただし、一部の XML エディターは、これらの型に対して長さ制限を実装しているようです。

また、一部の Web ブラウザでは、長さ制限を実装しているようです。たとえば、HTML Hx 要素の「id」属性 (HTML 4 と XHTML 1.1 の両方で XML ID タイプとして定義されています) などです。

  1. W3C 仕様またはその他の仕様で定義されている ID/IDREF 型の長さに制約はありますか?

  2. XML エディターによって実装される典型的な長さの制約は何ですか?

  3. Web ブラウザ (HTML 用) によって実装される典型的な長さの制約は何ですか?

4

1 に答える 1

3

実際、現在存在するすべての XML パーサーには ID 型と IDREF 型の値に長さの制限があることは明らかです。これは、現在存在するすべての XML パーサーが有限量のストレージを備えたマシン上で実行されるためです (通常、パーサーははるかに小さいストレージを持っています)。ドキュメントの解析に使用する準備ができているストレージの量の制限)。

私が知っている唯一のパターン (私の限られた経験に基づく) は、有効な制限が事前定義された量ではなく、実行時の重要な瞬間に使用可能なメモリの量によって与えられることは珍しいことではないということです。

一部のユーザーは、32 文字を超える識別子を使用しないと単純に決めていると思います。ほとんどの XML エディターは、長さが 1 ~ 2 桁大きい識別子を受け入れると思います。

最初の質問に答えるために、私が知っている W3C 仕様で定義されている ID/IDREF (または XML 仕様の他のもの) の長さに制約はありません。すべての実装には必然的に制限がありますが、それらの制限の最小レベルを設定する仕様を私が知っているわけではありません。また、それらの制限の設定レベルを定義しようとすると、軽蔑の弾幕ですぐに撃墜されるのではないかと思います. (XSD 1.1 はいくつかの無限データ型のサポートの最小制限を設定しますが、ID と IDREF の最小長制限については何も述べていません。厳密に言えば、これらの型の値と字句空間は常に有限であるため、セクション 5.4 の焦点はおそらく無限です。データ型により、それらは範囲外に見えました。)

于 2013-01-23T16:28:47.690 に答える