草庐IT

ant 中的 XML 验证失败,错误与正在验证的文件不匹配

在此先感谢您的帮助...我遇到了XML文件的问题,这些文件未通过DTD验证(通过antxmlvalidate任务),但XML文档中报告的错误与正在验证的文档的内容不匹配。此外,在Oxygen中打开的相同文件也没有问题。报告错误的ant输出示例如下:[xmlvalidate]/Path/to/file.xml:240:91:Attribute"match_style"withvalue"ble"musthaveavaluefromthelist"anyallnone".在目视检查相关文件时,match_style的值第240行的属性是all.对该文件的搜索显示字符串ble,虽然它确实在文

java - 验证 "Invalid byte 1 of 1-byte UTF-8 sequence."中的 XML 文档结果

我正在根据Schematron验证一些XML文件使用Probatron4j的样式表,它在内部使用Saxon。大多数时候,这工作正常,但偶尔,处理会因错误而崩溃org.xml.sax.SAXParseException:Invalidbyte1of1-byteUTF-8sequence.我的研究表明此消息通常表示(无特定顺序)明显无效的数据(例如,试图将ZIP文件当作XML文件来读取);存在byteordermarks;存在UTF-8中不合法的字符;或声称是UTF-8编码的文件是在撒谎。这些都不适用于我正在处理的文档。我在程序执行期间检查了字节数组形式的输入,它不包含BOM或任何非ASC

c# - 从 Saxon 9.4he 中的嵌入式资源加载 xml 和 xslt

我正在使用Saxon9.4家庭版(Saxon-HE9.4.NET)来获得对XSLT2.0和XPath2.0以及.NET中的XQuery1.0的支持。当我加载没有URI的文件时,我的代码崩溃了。是否可以在没有与所加载文档相关的URI的情况下加载xml/xsl文档?如果没有,是否有任何方法可以为嵌入在dll文件中的元素定义URI?任何其他解决方案也将受到赞赏,我唯一的术语是文件必须从dll文件中加载。只要我从文件加载xml/xsl,我的代码就可以完美运行:conststringsourcePath=@"C:\test\TestInvoiceWithError.xml";conststrin

在一个巨大的目录中转换 XML 时出现 java.lang.OutOfMemoryError

我想使用XSLT2在具有很多级别的巨大目录中转换XML文件。有超过100万个文件,每个文件为4到10kB。一段时间后,我总是收到java.lang.OutOfMemoryError:Java堆空间。我的命令是:java-Xmx3072M-XX:+UseConcMarkSweepGC-XX:+CMSClassUnloadingEna放血-XX:MaxPermSize=512M...向-Xmx添加更多内存不是一个好的解决方案。这是我的代码:for(Filefile:dir.listFiles()){if(file.isDirectory()){pushDocuments(file);}el

java - 如果 Saxon 在 CLASSPATH 上,命名空间未知的 XPath 表达式失败

我有以下示例XML文件:使用XPath表达式/foo:a/foo:b('foo'在NamespaceContext)我可以正确计算b节点的数量,当Saxon-HE-9.4.jar在CLASSPATH上和不在CLASSPATH上时,代码都有效。但是,当我使用namespace解析同一个文件时-不知道DocumentBuilderFactory,XPath表达式“/a/b”正确计算了的数量b节点仅当Saxon-HE-9.4.jar不在CLASSPATH上时。代码如下:importjava.io.*;importjava.util.*;importjavax.xml.xpath.*;impo

java - 如何在 Saxon 的 XQuery 中动态引用 XML 文件

我正在使用XQuery处理器Saxon。现在我们将XQuery写在一个“.xqy”文件中,我们引用将在其上执行XQuery的XML文件。请看下面的例子:for$xindoc("books.xml")/books/bookwhere$x/price>30return$x/title现在我想使用未存储在某些路径中的动态生成的XML。比方说,我想在下面引用以字符串形式提供的XML。该怎么做?Stringbook=LearnJavain24HoursRobert200530.00Learn.Netin24hoursPeter201140.50LearnXQueryin24hoursRobert

xml - 将节点插入另一个 XML,创建新元素(或更新现有元素)并重新排序生成的文档

好吧,即使我一直在努力使用该网站,也要发布我的第一个问题。在过去的两天里,我一直在尝试为此找到解决方案,但没有成功。使用本网站上类似问题的一些答案(this、this、this、this以及许多许多其他问题)我已经取得了一些进展,但完整(且正确!)解决方案仍然逃避我。我有一个现有的XML(file1.xml),我必须根据我正在生成的另一个XML(file2.xml)进行更新:的内容>file2必须包含在file1中,以遵守我稍后将说明的一些规则(文件内容已被过度简化以仅显示相关元素):file1.xml...file2.xml...如前所述,file2的内容必须插入file1并遵守一些

xml - XSLT 3.0 流式传输 (Saxon)

我有一个很大的XML文件(6GB),其中包含这种树:EJohnSmith[...][...][...]如果我在其上应用XSLT样式表,则会出现此错误:Exceptioninthread"main"java.lang.OutOfMemoryError:Javaheapspace所以我想尝试新的XSLT3.0功能:流式传输,使用Saxon9.6EE。我不想在文档中限制一次流式传输。我认为,我想做的事情非常接近此处描述的“突发模式”:http://saxonica.com/documentation/html/sourcedocs/streaming/burst-mode-streaming

xml - 检查 xml 文件是否存在 XSLT 2.0,saxon9HE

我想用xslt2.0检查文件是否存在。但是,它不起作用。我试过这个:(路径正确)但是,当文件不存在时,这会导致错误。还有这个:不起作用,它告诉我那里的文件显然不存在。正确的做法是什么?一种检查xml文件是否存在的可靠方法。 最佳答案 根据thissimilarquestion,作者提到,就检查xml文件是否存在而言,诸如此类的东西对他们有用。Rightnow,itcheckseachfolderindividuallyanifthefiledoesntexistinthatfolder,itwritesittotheoutput,r

xml - 如何在 Saxon-HE 中获得 EXSLT 支持?

我有一堆XSLT文件需要根据一些XML文件进行处理。我无法更改XSLT文件,因为它们来自第三方。XSLT的版本是2.0。我在MacOSX10.6上,它看起来像Saxon-HE是唯一可用的XSLT2.0处理器。大多数XSLT工作正常,但是,有些会给出有关缺少函数的错误,特别是month-in-year()和其他日期/时间相关函数。根据http://www.saxonica.com/documentation/extensions/exslt.xml关于EXSLT:TheseextensionsareavailableinSaxon-PEandSaxon-EE"outofthebox".T