Какова типичная максимальная длина значений типов XML/XSD ID/IDREF?

W3C XSD 1.0 часть 2: спецификация типов данных ссылается на спецификацию W3C XML 1.0 для определения типов ID и IDREF, но ни один из этих документов не определяет каких-либо ограничений на длину значений этих типов.

Однако, похоже, что некоторые редакторы XML реализуют ограничения длины для этих типов.

Кроме того, некоторые веб-браузеры, по-видимому, реализуют ограничения длины, например, для атрибута "id" элементов HTML Hx (который определяется как тип XML ID как в HTML 4, так и в XHTML 1.1).

  1. Существуют ли какие-либо ограничения на длину типов ID/IDREF, определенных спецификацией W3C или какой-либо другой спецификацией?

  2. Каковы типичные ограничения длины, реализованные редакторами XML?

  3. Каковы типичные ограничения длины, реализованные веб-браузерами (для HTML)?

1 ответ

На самом деле, совершенно очевидно, что каждый существующий синтаксический анализатор XML имеет ограничение по длине на значения типа ID и IDREF, поскольку каждый существующий синтаксический анализатор XML работает на машине с конечным объемом памяти (и обычно анализатор имеет гораздо меньший размер). ограничение на объем хранилища, которое он готов использовать при разборе документов).

Единственная известная мне схема (основанная на моем ограниченном опыте) заключается в том, что эффективный предел задается не заранее заданным количеством, а объемом доступной памяти в решающий момент во время выполнения.

Я считаю, что некоторые пользователи просто утверждают, что они не будут использовать идентификаторы длиннее 32 символов; Я подозреваю, что большинство редакторов XML примут идентификаторы, длина которых на один или два порядка больше.

И чтобы ответить на ваш первый вопрос: нет никаких ограничений на длину ID/IDREF (или чего-либо еще в спецификации XML), определенной в любой спецификации W3C, о которой я знаю. У всех реализаций обязательно будут ограничения, но я не знаю спецификаций, которые бы устанавливали минимальный уровень для этих пределов, и я подозреваю, что любая попытка определить установленный уровень для этих пределов будет немедленно прекращена в ярости презрения. (XSD 1.1 действительно устанавливает минимальные пределы для поддержки некоторых бесконечных типов данных, но ничего не говорит о минимальных пределах длины для ID и IDREF; строго говоря, значение и лексические пространства этих типов всегда конечны, поэтому, возможно, фокус в разделе 5.4 на бесконечности типы данных заставили их казаться вне области.)

Другие вопросы по тегам