有没有办法在使用MathMl 2.0的同时在XSD中关联MathMl 3.0版本?

问题描述 投票:0回答:1

我是一名软件工程师,目前正在开发一个项目,该项目将根据我拥有的 xsd 验证带有 MathML 标记的 xml 文件的有效性。 MathML 2.0 版本包含在我当前拥有的 xsd 中,但我公司收到的一些 xml 包含仅 MathML 3.0 标记。

假设我有两个带有 mathml 标签的 xml 文件;其中一个具有仅在 MathML 2.0 中可见的标签和元素,而另一个具有仅在 MathML 3.0 中可见的标签和元素。我还有一个包含或调用 MathML 2.0 的 xsd。

无论它们具有 MathML 2.0 还是 MathML 3.0 标记,我都希望根据我拥有的 XSD 检查这两个 XML 文件。

如果在 2.0 版本中找不到 xml 标记,xsd 中是否有一种方法或选项可以用来调用 MathML2.0 或使用 Mathml3.0?

需要帮助请。

提前致谢。

我尝试在网上搜索一些可能的解决方案或其他有相同问题的人,这至少会给我一些解决我的问题的想法,但我找不到。

xml xsd xsd-validation
1个回答
0
投票

我认为这个问题有两个部分。

首先,您需要找到一种构建两个模式的方法,其中一个包含 MathML 2.0 模式,另一个包含 MathML 3.0 模式。您可以通过多种方式执行此操作,例如使用目录机制将相关

xs:import
声明解析为不同的源文件。

其次,您需要一种机制来决定在运行时使用这两种模式中的哪一种进行验证。我将使用一个小管道(可能用 XProc 编写)来完成此操作,该管道首先使用 XPath 检查实例以确定它正在使用哪种方言,然后在管道的下一步中调用适当的验证器。

© www.soinside.com 2019 - 2024. All rights reserved.