jjzjj

schematron

全部标签

xml - 如何检查属性是否位于元素内?

我想检查文档中是否有内联样式表,但我不确定如何选择元素的后代属性,因为“style”属性可以附加到body元素中的任何元素。这是我写的当前xpath:descendant::@*[self::@style]但是解析器抛出错误提示:“轴名称后出现意外标记“@””。任何人都可以告诉我如何修复它或有另一种方法吗?谢谢! 最佳答案 因此,我认为您正在文档中的任何位置寻找具有@style属性的任何元素。如果您想要包含您想要的属性的元素:descendant::*[@style]这将返回当前节点的所有具有@style属性的后代元素。如果你想要属

c# - 使用 Schematron 验证 XML

我正在尝试使用Schematron验证XML文件,这比XSD更复杂。我在谷歌上搜索了很多,最好的结果是这个Microsoftwebsite.但这仅显示了如何使用带有NMatrix.Schematron的XSD进行验证,这不是我需要的。我有NMatrix.SchematronDLL,但我不知道如何使用它们。有谁知道怎么用吗? 最佳答案 最好用Saxon-HEfromNuget因为它比现在在.NET上的Schematron支持的要多得多>我正在使用Schematron.NET-下载源代码和示例,编译它或只使用示例中的DLL。然后我完全删

xml - Schematron 中的 XPath : How to determine if an xmlns attribute is present on a node

我正在尝试匹配缺少xmlns属性的特定元素的任何实例,但我无法通过语法获得匹配。我的xml如图所示:我想返回第一个节点,而不是第二个。如果我根据第二个节点上显示的style属性进行匹配,我可以简单地使用not(@style)但这不适用于not(@xmlns:m)。我试图通过搜索具有与URI匹配的值的任何属性来规避此问题,但同样,这适用于其他属性,但不适用于xmlns:m。使用XPath匹配/解析xmlns属性是否需要某种限制或语法怪癖? 最佳答案 Istheresomesortoflimitationorsyntaxquirktha

php - 如何在xml文件中定义schematron来验证?

我是XML方面的新手。答案很简单,但我挣扎了几天。Ofcourse完全在stackoverflow中获得解决方案,但我不知道我是否有足够的XML知识来获得或理解它。所以,终于来这里从专家那里得到解决方案。好吧,我有一个xml文件、DTD和sch文件。我正在使用Eclipse来根据DTD验证XML。但我不知道如何根据sch文件验证xml。示例xml文件在此,我定义了DTD文件来验证。我不知道如何定义sch文件来验证。最简单的方法是什么?我会使用php来根据DTD验证xml。php$dom=newDOMDocument;$dom->Load('sample.xml');if($dom->v

php - 在 PHP 5 中使用 Schematron 验证 XML

我在使用schematron验证XML时遇到问题.在我的代码中,我将XML和XSL作为DOMDocument对象加载并尝试转换:$domSche=newDOMDocument();$domSche->loadXML($message);$domXSLSche=newDOMDocument();$domXSLSche->load("CI-SIS_StructurationCommuneCDAr2.xsl");$xsltsche=newXSLTProcessor();$xsltsche->importStylesheet($domXSLSche);$XSLValid=$xsltsche->

xml - 限制 XSD 中的独占键值对

在XSD中,有两个元素,A和B。它们是兄弟。A的值可以是“1”或“2”。B的值可以是“一”或“二”。但是,我想对此进行限制,以便只有“1-one”和“2-two”是有效组合,而不是“1-two”或“2-one”。有没有办法在XSD中做到这一点? 最佳答案 Schematron可用于定义此类共现约束。您可以在此处找到一些介绍性文章:ImprovingXMLDocumentValidationwithSchematronSchematron:XMLStructureValidationLanguageUsingPatternsinTre

php - 使用 PHP 针对 Schematron 验证 XML

有很多关于Schematron的资源...但是我找不到任何相关的内容或关于如何根据Schematront.sch文件验证xml的示例。有人吗?我已经找到1或2个返回错误的非常旧的类...所以如果有人知道如何执行此操作,请提供帮助。 最佳答案 我使用“ANT”选项..构建.xmldebugMode=true显示中间XSLT文件 关于php-使用PHP针对Schematron验证XML,我们在StackOverflow上找到一个类似的问题: https://sta

xml - 如何以结构化方式返回 Schematron 验证结果

我已经创建了几个Schematron断言,它们都在我的XML实例上运行良好。但是,我想以这样一种方式构建我的错误消息的输出,以便我以后可以使用例如Java对它们进行后处理。我的断言错误信息的输出应该是MyerrormessageTheviolatingelement但是,一个结构如:MyerrormessageTheviolatingelement不起作用。以结构化(XML化)方式返回Schematron结果的正确方法是什么? 最佳答案 实际上,要获得XML格式的Schematron报告,您应该使用SVRL。您可以在此处了解更多信息

regex - 使用 Schematron 将空格标识为元素中的第一个字符

是否可以编写一个schematron规则/断言来标识元素开头的空格?我需要一种方法来标记以空格开头的元素,以便可能删除空格,但我不想通过XSLT等强行删除此类空格。这是一个示例:Here'ssometext. 最佳答案 是的,Schematron使用XPath进行断言,因此测试前导空格的元素的字符串值很容易:ParagraphsstartingwithaspaceThisparagraphstartswithaspace: 关于regex-使用Schematron将空格标识为元素中的第一

xml - 如何在 Schematron 中测试不存在的元素

是只有我自己还是不可能通过Schematron查找不存在的元素。我似乎也找不到关于此的任何文档。遵循以下规则:identifiermustbepresentidentifier-required:identifiermustbepresent并将其应用于以下文档:TESTTEST理论上这应该会失败,但我发现它不会。有人知道这是否正确吗? 最佳答案 当然可以检查Schematron中是否缺少元素。您的断言不会失败,因为它的规则上下文不匹配。如果你的规则匹配,那么必然是.将存在,所以无论如何都不会过去。您可以改为将上下文设置为C的父级然