提问人:GreatPretender 提问时间:9/2/2023 更新时间:9/2/2023 访问量:25
有没有办法在同时使用 MathMl 2.0 的同时将 MathMl 3.0 版本关联到 XSD 中?
Is there a way to associate MathMl 3.0 Version in XSD while using MathMl 2.0 at the same time?
问:
我是一名软件工程师,目前正在从事一个项目,该项目将根据我拥有的 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 的方法或选项?
需要帮助。
提前致谢。
我尝试在网上搜索一些可能的解决方案或有相同问题的其他人,这至少会给我一些解决我问题的想法,但我找不到。
答:
1赞
Michael Kay
9/2/2023
#1
我认为这个问题有两个部分。
首先,您需要找到一种构建两个模式的方法,其中一个包含 MathML 2.0 模式,另一个包含 MathML 3.0 模式。有多种方法可以做到这一点,例如,通过使用目录机制将相关声明解析为不同的源文件。xs:import
其次,您需要一种机制来决定在运行时使用这两个架构中的哪一个进行验证。我会用一个小管道(可能是用 XProc 编写的)来做到这一点,它首先使用 XPath 检查实例以决定它使用的方言,然后在管道的下一步中调用适当的验证器。
评论