如何在 xml 文件中定义 schematron 进行验证?
Posted
技术标签:
【中文标题】如何在 xml 文件中定义 schematron 进行验证?【英文标题】:How to define schematron in xml file to validate? 【发布时间】:2015-07-23 01:14:29 【问题描述】:我是 XML 方面的新手。答案很简单,但我挣扎了几天。 Ofcourse 完全在 *** 中获得解决方案,但我不知道我是否有足够的 XML 知识来获得或理解它。所以,终于来这里从专家那里得到解决方案了。
嗯,我有一个 xml 文件、DTD 和 sch 文件。我正在使用 eclipse 针对 DTD 验证 xml。但我不知道如何针对 sch 文件验证 xml。
示例 xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE SAGE-hubxml
PUBLIC "-//SAGE//DTD SAGE Hub XML DTD v1.0 20111101/EN" "SAGE-hubxml.dtd">
<SAGE-hubxml xmlns="http://www.w3.org/1999/xhtml" xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<body>
</body>
</SAGE-hubxml>
在此,我定义了要验证的 DTD 文件。我不知道如何定义 sch 文件进行验证。最简单的方法是什么? 我会使用 php 针对 DTD 验证 xml。
php
$dom = new DOMDocument;
$dom->Load('sample.xml');
if ($dom->validate())
echo "This document is valid!\n";
else
echo "This document is not valid!";
所以,如果我们可以使用 php 针对 sch 验证 xml,将会非常有帮助
更新
在一些文档中,他们提到了氧气 xml 编辑器,以验证 sch 文件。我需要其他类似的东西,因为氧气是一种商业工具。
【问题讨论】:
【参考方案1】:我认为您不能像 XML 模式(或 DTD)那样定义 schematron 文件并以相同的方式对其进行验证。
您必须使用 php schematron 库才能处理 sch 文件,或者将 sch 文件转换为 XSLT 文件,然后使用 XLST 处理器来验证 XML 文件。
【讨论】:
感谢您的回答!我已经更新了我的帖子。请看一下。你说的建议是我要求的唯一解决方案吗? 如果你想用php做,那我帮不了你更多:(使用java你有probatron.org。你也可以查看官方网站:schematron.com/resources.html 使用命令行java -jar probatron.jar document-to-validate schematron-schema
我们可以验证它。但是他们提到了document-to-validate schematron-schema
所以这里的输入文件是sch还是xml?
document-to-validate
:要验证的 xml 文件 schematron-schema
:包含规则的 schematron 文件
所以,输入是要验证的xml文件。以及在哪里定义sch文件..在xml文件或命令行中?以上是关于如何在 xml 文件中定义 schematron 进行验证?的主要内容,如果未能解决你的问题,请参考以下文章
JSON:对于 JSON 和 JSON Schema,是不是有等效的 Schematron? (即一种表示协约束的JSON技术)