如何创建DTD并将其集成到JAR文件中..?

时间:2011-03-26 13:08:31

标签: java xml jar dtd

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

请提前帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

您需要创建一个Resolver类,它将您的DTD的公共或系统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 */
  }

}

答案 1 :(得分:0)

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

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

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

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