Всъщност е доста ясно, че всеки XML анализатор, който сега съществува, има ограничение на дължината на стойностите на тип ID и IDREF, тъй като всеки XML анализатор, който сега съществува, работи на машина с ограничено количество памет (и обикновено анализаторът има много по-малко ограничение на количеството памет, което е готово да използва при анализиране на документи).
Единственият модел, за който знам (въз основа на моя ограничен опит), е, че не е необичайно ефективното ограничение да бъде дадено не от предварително определено количество, а от количеството налична памет в решаващия момент по време на изпълнение.
Вярвам, че някои потребители просто постановяват, че няма да използват идентификатори, по-дълги от 32 знака; Подозирам, че повечето XML редактори ще приемат идентификатори, чиято дължина е с един или два порядъка по-голяма.
И за да отговоря на първия ви въпрос: няма ограничения за дължината на ID/IDREF (или нещо друго в спецификацията на XML), дефинирана във всяка спецификация на W3C, която ми е известна. Всички реализации непременно ще имат лимити, но няма спецификация, за която знам, че да определя минимално ниво за тези лимити, и подозирам, че всеки опит да се дефинира зададено ниво за тези лимити ще бъде свален незабавно в залп от презрение. (XSD 1.1 наистина задава минимални ограничения за поддръжката на някои безкрайни типове данни, но не казва нищо за ограниченията на минималната дължина за ID и IDREF; строго погледнато, стойностите и лексикалните пространства на тези типове винаги са ограничени, така че може би фокусът на раздел 5.4 върху безкрайните типовете данни ги карат да изглеждат извън обхвата.)
person
C. M. Sperberg-McQueen
schedule
23.01.2013