Каква е типичната максимална дължина на стойностите на типовете 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)?


person Andreas Maier    schedule 23.01.2013    source източник


Отговори (1)


Всъщност е доста ясно, че всеки 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