В xml есть ID IDF и IDREFS, встроенные в спецификацию. IDREF и IDREFS должны привязываться непосредственно к значениям идентификатора, и проверка схемы должна завершиться неудачно, если каждое значение IDREF не имеет соответствующего значения ID.Есть ли способ генерировать значение xsd: ID в java?
Прежде чем я скачу свой собственный, мне было интересно, есть ли у Java (или apache) что-то уже созданное для создания значений идентификатора, которые придерживаются формата ID. Если вы не знакомы с спецификацией значения идентификаторов должны придерживаться одних и тех же имен правил XML-тегов сделать:
[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
[5] Name ::= NameStartChar (NameChar)*
Генерированием UUID почти возвращает нас туда, но UUID, которые начинаются с числовым бы вызвать проблемы. Очевидно, что простая реализация будет префиксом guid с любым значением NameStartChar. В духе стандартизации существует ли какая-либо функция, которая обычно используется для этого?
В какой сфере вам нужны эти уникальные? XML просто требует, чтобы они были уникальными в документе. Если это все, что вам нужно, UUID являются излишними - просто используйте последовательные номера с префиксом. С ними легче справиться при поиске неисправностей - легче запомнить «42», чем «550e8400-e29b-41d4-a716-446655440000». –