【问题标题】:How to define schematron in xml file to validate?如何在 xml 文件中定义 schematron 进行验证?
【发布时间】:2015-07-23 01:14:29
【问题描述】:

我是 XML 方面的新手。答案很简单,但我挣扎了几天。 Ofcourse 完全在 stackoverflow 中获得解决方案,但我不知道我是否有足够的 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 文件。我需要其他类似的东西,因为氧气是一种商业工具。

【问题讨论】:

    标签: php xml eclipse validation schema


    【解决方案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文件或命令行中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    相关资源
    最近更新 更多