java - 是否已经有办法生成 xsd :ID value in java?

标签 java xml

在 xml 中,规范中内置了 ID IDREF 和 IDREFS 类型。 IDREF 和 IDREFS 应该直接绑定(bind)到 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 几乎可以让我们到达那里,但是以数字开头的 uuid 会导致问题。显然,一个简单的实现是在 guid 前面加上任何 NameStartChar 值。本着标准化的精神,是否有任何常用的函数?

最佳答案

我还没有找到 - 但你可以这样做:

public static String generateId() {
    long now = System.currentTimeMillis();
    long randomLong = random.nextLong();
    return ("ID_" + now + "-" + randomLong);
}

关于java - 是否已经有办法生成 xsd :ID value in java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8994242/

相关文章:

xml - 如何使用Powershell创建xml文件的子集或过滤掉xml文件的子节点?

sql-server - 对 xml 列执行 "insert only if node with specific value does not exist"的有效方法

java - 多个应用程序 ID 的附加安装程序

xml - 从行创建 XML 元素

java - Java 中的 SQL 查询 : (JDBC) How to use the SELECT statement?

java - 异常org.hibernate.exception.GenericJDBCException : could not extract ResultSet while feching data using hql

python - 如何通过Python连接未格式化的XML文件中的行

javascript - 使用 Prototype 的 $() 解析responseXML

java - 每次限制字符串创建对象

java - 涉及子类的多态性