XSD 和元素存在要求,或其他选项

发布于 2024-10-20 12:22:54 字数 215 浏览 9 评论 0原文

在 XSD 级别,我可以根据文档中另一个元素的存在来定义元素要求吗?

例如,我想要求每当 元素也存在时提供元素 ,否则名字是可选的。

如果这不能在 XSD 级别强制执行,那么我是否应该将这两个元素设为可选并通过不同级别的检查强制执行要求?

欢迎选择。

At the XSD level, can I define an element requirement based on presence of another element in the document?

For example, I want to require the element <firstname /> be provided whenever the <id /> element is also present, otherwise first name is optional.

If this cannot be enforced at the XSD level, then should I make both elements optional and enforce the requirement through a different level of checking?

Options welcome.

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

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

发布评论

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

评论(2

一抹苦笑 2024-10-27 12:22:54

这不能在 XSD 级别强制执行。

对我来说,将这两个元素设为可选并在应用程序架构的不同级别强制执行要求听起来是一个不错的选择。

This cannot be enforced at the XSD level.

Making both elements optional and enforcing the requirement at a different level in the application architecture sounds like a good option to me.

苏佲洛 2024-10-27 12:22:54

下面是在 DTD 中完成此操作的示例。 (注意:测试实例是使用 oXygen XML Editor(使用 Xerces)进行验证的。)

DTD (test.dtd)

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT user ((firstname?|(firstname,id)),lastname)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT id (#PCDATA)>

以下是一些示例 XML 实例(有效和无效):

有效< /strong>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user SYSTEM "test.dtd">
<user>
  <firstname/>
  <id/>
  <lastname/>
</user>

无效

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user SYSTEM "test.dtd">
<user>
  <id/>
  <lastname/>
</user>

有效

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user SYSTEM "test.dtd">
<user>
  <firstname/>
  <lastname/>
</user>

Here's an example of this being done in a DTD. (Note: The test instances were validated using oXygen XML Editor (which is using Xerces).)

DTD (test.dtd)

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT user ((firstname?|(firstname,id)),lastname)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT id (#PCDATA)>

Here are some example XML instances (valid and invalid):

Valid

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user SYSTEM "test.dtd">
<user>
  <firstname/>
  <id/>
  <lastname/>
</user>

Invalid

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user SYSTEM "test.dtd">
<user>
  <id/>
  <lastname/>
</user>

Valid

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user SYSTEM "test.dtd">
<user>
  <firstname/>
  <lastname/>
</user>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文