如何解决运行 XSLT (Saxon PE 9.8.0.4J) 时 XML 解析器处理文件报告的 I/O 错误
我们正在开始从 NLM Journalpublishing 3.0 DTD 的轻微修改版本迁移到 JATS v1.2 DTD 的轻微修改版本,以便我们进行内部编辑和处理。我一直致力于我们的编辑和文档处理工具的初始设置和测试。我们有 4 个 XSLT 转换,用于生产过程的各个部分。我们使用 Saxon PE 9.8.0.4J 在 Linux 服务器上运行我们的转换。
我对我正在测试的第一个 XSLT 所做的唯一更改是更新 <xsl-output>
元素上的 doctype-system 和 doctype-public 属性。
当我运行我们的命令时:ng net.sf.saxon.Transform -xsl:/develop/lib/code/verify/verify.xsl -s:/jrnls/AN/v000n000/59613/59613.tmp -o:/jrnls/AN/v000n000/59613/59613.xml -catalog:/develop/lib/code/saxon_JATS-1.2/catalog.ucpj-jats.xml -config:/opt/SaxonPE9-8-0-4J/ UCPJconfig.xml ms-directory=/jrnls/AN/v000n000/59613
我收到此错误:XML 解析器处理文件报告的 I/O 错误:/jrnls/AN/v000n000/59613/59613.tmp:/jrnls/AN/v000n000/59613/JATS-journalpublishing-oasis- article1-mathml3.dtd(没有那个文件或目录)
我们使用几乎相同的命令行来处理 Journalpublishing 3.0 DTD 中的当前文件,但使用不同的目录文件。我们在处理当前文件方面没有问题。
在设置 JATS 1.2 目录文件时,我以我们的 Journalpublishing 3.0 目录文件为例。我尝试使用 JATS 1.2 目录,既没有 <group>
元素,也有 <group>
元素,指定了 xml:base 属性。无论哪种方式,我都得到了相同的结果。
我确实在 Oxygen 中设置了一个框架来测试这个 XSLT,它按预期工作。
任何人都可以提出任何解决此问题的方法吗?任何建议将不胜感激。
解决方法
我在谷歌上搜索了“xerces resolver.jar”,结果之一是到了 Apache XML 项目解析器概述页面 (https://xerces.apache.org/xml-commons/components/resolver/)。从那里我转到了“XML 实体和 URI 解析器”({{3} }).
在该页面的第一个脚注中,作者包含了一个用于解析带有目录的 XML 文件的命令行:
$ java org.apache.xml.resolver.apps.xparse -d 2 -c catalog.xml example.xml
我修改后在我们的服务器上运行:
% ng org.apache.xml.resolver.apps.xparse -d 2
-c /develop/lib/code/saxon_JATS-1.2/catalog.ucpj-jats.xml
/jrnls/AN/v000n000/59613/59613.xml
我得到了这个输出:
Attempting validating,namespace-aware parse
Loading catalog: /develop/lib/code/saxon_JATS-1.2/catalog.ucpj-jats.xml
Resolved public: -//NLM//DTD JATS (Z39.96) Journal Publishing DTD with OASIS Tables with MathML3 v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-journalpublishing-oasis-article1-mathml3.dtd
Resolved public: -//NLM//DTD JATS (Z39.96) Journal Publishing DTD with OASIS Tables DTD-Specific Modules v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-journalpub-oasis-custom-modules1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS MathML 3.0 Modules v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-mathml3-modules1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Module of Modules v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-modules1.ent
Resolved public: -//NLM//DTD JATS ALI Namespace Module v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-ali-namespace1.ent
Resolved public: -//NLM//DTD JATS OASIS Table Namespace Module v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-oasis-namespace1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Common Attributes (for all elements) v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-common-atts1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) Journal Publishing DTD with OASIS Tables Customize Classes v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-journalpub-oasis-custom-classes1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) Default Element Classes Module v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-default-classes1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) Journal Publishing DTD Customize Mixes Module v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-journalpubcustom-mixes1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) Default Element Mixes Module v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-default-mixes1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) Journal Publishing DTD Customize Content and Attributes Module v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-journalpubcustom-models1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Common (Shared) Elements Module v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-common1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Journal Article Metadata Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-articlemeta1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Back Matter Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-backmatter1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Display Class Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-display1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Formatting Element Classes v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-format1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Funding Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-funding1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Journal Metadata Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-journalmeta1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Link Class Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-link1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite List Class Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-list1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Math Class Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-math1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) NLM Citation v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-nlmcitation1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) Namespaced OASIS XML Table Setup Module v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-oasis-tablesetup1.ent
Resolved public: -//OASIS//DTD XML Exchange Table Model 19990315//EN
file:/develop/lib/code/saxon_JATS-1.2/oasis-exchange.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Paragraph-Like Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-para1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Subject Phrase Class Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-phrase1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Bibliographic Reference (Citation) Class Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-references1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Related Object Element v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-related-object1.ent
Resolved public: -//NLM//DTD JATS (Z39.96) JATS DTD Suite Section Class Elements v1.2 20190208//EN
file:/develop/lib/code/saxon_JATS-1.2/JATS-section1.ent
java.io.FileNotFoundException: /develop/lib/code/saxon_JATS-1.2/BITS-embedded-index2.ent (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:623)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1304)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1240)
at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.startPE(XMLDTDScannerImpl.java:740)
at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.skipSeparator(XMLDTDScannerImpl.java:2109)
at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDecls(XMLDTDScannerImpl.java:2072)
at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDTDExternalSubset(XMLDTDScannerImpl.java:307)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1174)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1045)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:959)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1140)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:655)
at org.apache.xml.resolver.tools.ResolvingParser.parse(ResolvingParser.java:183)
at org.apache.xml.resolver.apps.xparse.main(xparse.java:186)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.martiansoftware.nailgun.NGSession.run(NGSession.java:278)
Parse succeeded (0.31) with no errors and no warnings.
一旦我恢复了丢失的文件并将其添加到我们的目录文件中,我们的命令行就会按预期工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。