代码之家  ›  专栏  ›  技术社区  ›  Riduidel

是否可以对给定的DTD使用groovy.xml.MarkupBuilder?

  •  1
  • Riduidel  · 技术社区  · 14 年前

    我想创造 Apache Forrest groovy.xml.MarkupBuilder. 我显然希望我的文件不仅格式良好,而且根据 Forrest DTD . 我怎样才能保证?

    1 回复  |  直到 14 年前
        1
  •  1
  •   LarsH    14 年前

    好问题。AFAIK,唯一的方法是在节点生成之后根据DTD验证XML。通常情况下,这将是一个单独的过程。见 this article

    但要澄清的是:鉴于您完全可以控制XML的生成,您希望MarkupBuilder如何帮助确保有效性。。。如果试图创建在特定点不允许的节点,则引发异常? 不完整XML文档的有效性不是一个定义良好的概念。

    我无法想象一个过程能真正保证有效的XML输出,这与在生成输出后验证输出有很大不同。

    肯定有办法 在输出期间验证,即捕获 一些 可能导致无效输出的问题。

    http://www.ibm.com/developerworks/xml/library/x-schemaxslt.html#validout 讨论如何使用支持模式的XSLT转换来保证输出有效。我不完全确定这是怎么回事。可能它会在生成过程中验证它所能做的,但是对于某些约束,它必须等到输出完成后才宣布它有效与否。