元素或其他元素或文本的 XSD

发布于 2024-11-03 10:48:01 字数 333 浏览 0 评论 0原文

我需要一个用于以下构造的 XSD:

Expression := <FunctionCall> | <OperatorConstruct> | <Variable> | Constant_Text

换句话说,表达式类型由 3 种其他类型和一个文本之间的选择组成。
我知道有一个 xs:Choice 元素,但我不知道如何编写“或文本”部分。只需在“表达式”元素上使用“mixed=true”即可输入文本和其他元素,但我想仅限于这四个元素中的一个。
所以问题是,我可以定义什么 xsd 来允许三个元素之一或文本?

I need an XSD for the following construct:

Expression := <FunctionCall> | <OperatorConstruct> | <Variable> | Constant_Text

In other words, the Expression type consist of a choice between 3 other types and a text.
I know there is a xs:Choice element, but I can't figure out how to write the 'Or Text' part. Simply using mixed=true on the Expression element allows to enter text AND other elements, but I would like to limit to only one from those four.
So the question is, what xsd can I define that allows one of three elements or a text?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

意中人 2024-11-10 10:48:01

如果您希望您的结构通过 XML 模式进行验证,则必须将所有四个选择都放入元素中。 MathML 表达式就是这样工作的,每个术语都有元素。

或者您可以使用 mixed 并验证 XSD 外部的结构(使用 XSLT 或 Schematron 或您自己的解析代码)。

If you want your structure validated by an XML Schema, you'll have to make all four choices into elements. MathML expressions work that way, with elements for every term.

Or you could go with mixed and validate the structure outside of XSD (with XSLT or Schematron or your own parsing code).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文