【发布时间】:2014-03-12 09:48:33
【问题描述】:
我得到了一个 DTD 和 XML 文件。 DTD 包含元素的 id 属性。我想知道的是,如果我在 xml-editor(XMetaL) 中打开文件,然后插入一个新元素。
DTD 能否以某种方式为 id 属性生成一个随机 id,或者 XML 文件可以生成这个?
谢谢!
【问题讨论】:
我得到了一个 DTD 和 XML 文件。 DTD 包含元素的 id 属性。我想知道的是,如果我在 xml-editor(XMetaL) 中打开文件,然后插入一个新元素。
DTD 能否以某种方式为 id 属性生成一个随机 id,或者 XML 文件可以生成这个?
谢谢!
【问题讨论】:
DTD 将定义 ID 属性的类型(很可能是 ID 类型,以表明它必须遵循 ID 的 XML 规则,但仅仅因为一个属性被称为 id 并不意味着它的类型将是ID)。
XML 编辑器可以通过生成一个不匹配任何当前ID(例如elname1、elname2 等)的字符串来添加一个值,但这必须是编辑器的一项功能,而不是 DTD 本身指定的功能。
(有可比性——“可比性”,因为它们不是 XML 文件,尽管它们有一些相似之处——在许多 IDE 中用于处理 ASP.NET 的功能,它会添加例如 id="repeater1" 等等。我个人觉得这个更多的是麻烦而不是恩惠)。
【讨论】:
XML 只是一种表示数据的结构。 DTD 是你定义的 xml 结构。这些都不是为您生成ID。
但是 XSLT 的 generate-id() 将适合您。 您可以从 w3c http://www.w3schools.com/xsl/func_generateid.asp了解更多信息
【讨论】: