【问题标题】:how to create a DTD and integrate it in a JAR file..?如何创建 DTD 并将其集成到 JAR 文件中..?
【发布时间】:2011-03-27 00:31:40
【问题描述】:

实际上我有一个从特定 XML 文件中读取数据的 java 程序。 现在我想为该程序创建一个 jar 文件,并在其中包含相应的 DTD,以便任何使用我的 JAR 的人都可以根据该 DTD 检查其 XML。

请帮忙,提前谢谢!

【问题讨论】:

    标签: java xml jar dtd


    【解决方案1】:

    您需要创建一个 Resolver 类,它将您的 DTD 的公共 ID 或系统 ID 解析为您打包到 jar 中的 DTD 的副本。

    DocumentBuilderFactory factory = xmlFactories.newDocumentBuilderFactory();
    factory.setNamespaceAware(true);
    factory.setValidating(false);
    DocumentBuilder documentBuilder = factory.newDocumentBuilder();
    documentBuilder.setEntityResolver(new EntityManager());
    
    ......
    
    public class EntityManager implements EntityResolver {
      public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
          /* code goes here to return contents of DTD */
      }
    
    }
    

    【讨论】:

    • 在使用 JAXB 解组器时如何处理?
    • jaxb 有一个 API。也许写一个新问题?
    【解决方案2】:

    这将允许您在 .jar 中存储任意文件类型并在以后检索它。打包 .jar 时,明确包含 DTD 文件。例如:

    jar cvfm myClass.jar manifest.mf *.class relative\path\to\file.dtd
    

    注意操作系统的(反)斜线方向。然后,要检索该资源以在您的代码中使用,请使用:

    getClass().getResource("relative/path/to/file.dtd")
    

    【讨论】:

    • 嘿,谢谢您的回复.. 也许我不清楚我想要什么.. 我会重新提出我的问题。
    猜你喜欢
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 2011-06-30
    相关资源
    最近更新 更多