在xml中,规范中内置了ID IDREF和IDREFS类型。 IDREF和IDREFS应该直接绑定到ID值,如果每个IDREF值没有相应的ID值,则模式验证应该失败。
在我自己推出之前,我想知道java(或apache)是否已经创建了一些用于创建符合ID格式的ID值的东西。如果您不熟悉规范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几乎让我们在那里,但是以数字开头的uuids会导致问题。显然,一个简单的实现将为guid添加任何NameStartChar值。本着标准化的精神,有没有常用的功能?
答案 0 :(得分:1)
我还没找到 - 但你可以这样做:
public static String generateId() {
long now = System.currentTimeMillis();
long randomLong = random.nextLong();
return ("ID_" + now + "-" + randomLong);
}
答案 1 :(得分:1)
您也可以使用UUID类。
String id = "id_" + UUID.randomUUID().toString();
答案 2 :(得分:0)
我通常只使用一些前缀+一个递增的序号。 UUID是全球唯一的,在文档中,当您保持整数唯一时,很容易确保"customprefix"+integer
是唯一的。