我有两个架构文件,一个是从另一个导入的。在Eclipse模式中执行代码时找到了,但是从jar模式文件中执行代码时找不到了
这是代码
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(false);
SchemaFactory schemaFactory = SchemaFactory
.newInstance("http://www.w3.org/2001/XMLSchema");
try {
factory.setSchema(schemaFactory.newSchema(new Source[] {
new StreamSource(getClass().getResource("Liso.xsd")
.getFile()),
new StreamSource(getClass().getResource("LisoXml.xsd")
.getFile()) }));
this.saxParser = factory.newSAXParser();
} catch (SAXException se) {
System.out.println("SCHEMA : " + se.getMessage()); // problem in the XSD itself
}
这是我得到的错误
SCHEMA : schema_reference.4: Failed to read schema document 'file:/C:/Tools/lib/LisoTools.jar!/com/xerox/liso/xml/Liso.xsd', because 1) could not find the do
cument; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
谢谢
如果Liso.xsd
是import
LisoXml.xsd
,则只需定义Liso.xsd
如下所示的架构工厂就足够了。该api足够聪明,可以加载导入/包含的架构。
SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema")
Schema compiledSchema = schemaFactory.newSchema(getClass().getClassLoader().getResource("Liso.xsd"))
我验证了它在1.5和1.6上都能正常工作。在1.6上,如果使用DOM
,也可能会遇到此问题。
问题内容: 我在引用jar文件中的简单图像时遇到了麻烦。 我有一个包tha包含Java文件我有一个包tha包含图像 在我的java文件中,我引用了这样的图像 但是无法找到该图像。在首播中看起来像这样 前导“ /”和分隔符在Windows中不正确。 我检查了此路径,它在MS Explorer中不起作用。 更新 好的,它在某种程度上可以正常工作,但是图像路径不正确,不是对文件的引用,前导斜杠和%20空
问题内容: 我正在尝试使用以下命令更新现有jar(在本示例中为antlr)中的文件: 但是我收到以下消息 java.util.zip.ZipException:重复条目:java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:175)上的antlr / ANTLRError.class,java.util.jar.JarOut
当我设计炫耀的API服务模型时,我正在研究巨大的yaml模式,并强调了文本。我想将部分保存在另一个文件中,以便具有更大的灵活性和可读性。 在本文档之后,我使用了这部分代码: 在我的文件中,我有这样的东西: 它可以在本地主机上运行,但是我在企业部署服务器上运行我的文件时遇到了以下问题: 组件中的错误解析程序错误.架构.请求.属性.技术数据.$ref 无法解析引用,原因如下: 不可接受 我成功地能够在
问题内容: 我需要能够访问存储在已编译jar文件中的文件。我已经弄清楚了如何将文件添加到项目中,但是如何在代码中引用它呢?如何将文件从jar文件复制到用户硬盘驱动器上的某个位置?我知道有很多方法可以访问文件(FileInputStream,FileReader等),但是我不知道如何查看自身。 问题答案: 您可以使用如下形式: 如果foo.txt位于JAR文件的根目录中,则可以使用: 我相信,假设该
我目前正在使用Java服务包装器。它工作得很好,我可以使用我的可执行jar将其作为服务安装,甚至在将其作为服务安装时传递VM参数。 但由于这将在这里和那里部署,我想知道如何防止人们检索Jar文件中的源文件。这可能吗?我正在考虑将jar文件转换为。exe文件,并将其作为这样的服务安装,因为我发现有几个工具能够做到这一点。但他们似乎不允许我传递VM参数。 有人知道我该怎么做吗?
问题内容: 我刚刚“继承”了一个Java项目,而不是来自Java背景,有时我会有点迷失。Eclipse用于在开发过程中调试和运行应用程序。我已经通过Eclipse成功创建了一个.jar文件,该文件“包含”了所有必需的外部jar,例如Log4J,xmlrpc- server等。然后可以使用以下命令成功运行此大.jar: 我的下一步是使用Ant(版本1.7.1)自动进行构建,因此我不必参与Eclips