仅当设置另一个属性时才需要某个属性

2024-01-12

是否可以做一个属性required如果设置了另一个属性?

例如。在下面的代码中,viewId必须制作属性required, iff action属性已设置。

XML:

<node id="id1" destination="http://www.yahoo.com" />
<node id="id2" action="demo" viewId="demo.asp"/>

如果这是可能的,请您告诉我这是如何完成的。截至目前,我已经viewId set required在所有情况下,因此第一个node元素验证失败。

<xsd:attribute name="focusViewId" type="xsd:anyURI" use="required"/>

单独使用 XSD 1.0 是不可能的。除了 XSD 之外或代替 XSD,您还必须使用另一种 XML 模式语言,或者迁移到 XSD 1.1。

另一种选择可能是重构您的架构。如果 @destination 与 { @action, @viewId} 互斥,也许你可以使用 elements 来代替,这样你就可以使用xsd:choice.

更新:对于 XSD 1.1

<?xml version="1.0" encoding="utf-8" ?>
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) -->
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="node">
        <xsd:complexType>
            <xsd:attribute name="id" type="xsd:ID" use="required"/>
            <xsd:attribute name="destination" type="xsd:string"/>
            <xsd:attribute name="action" type="xsd:string"/>
            <xsd:attribute name="viewId" type="xsd:string"/>
            <xsd:assert test="(@viewId) or not(@action)" />
        </xsd:complexType>
    </xsd:element>
</xsd:schema>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅当设置另一个属性时才需要某个属性 的相关文章

随机推荐

  • 更改固定任务栏图标 (Windows 7)

    我不想自定义 Windows 7 任务栏中显示的图标 当我的应用程序运行时 我可以通过更改主窗口图标来完成此操作 但是当应用程序被固定时 会显示 exe 的图标 如何将我的应用程序的任务栏图标设置为与 exe 中嵌入的图标不同的图标 没试过
  • ASP.NET MVC:如何从HtmlHelper实例获取程序集信息?

    我在与 MVC 应用程序程序集分开的程序集中有一个 HtmlHelper 扩展方法 在扩展方法中 我想获取 MVC 应用程序程序集的版本号 这可能吗 调用程序集是剃刀视图动态程序集 因此没有帮助 HtmlHelper 中是否嵌套有一些对象可
  • T-SQL 子字符串 - 最后 3 个字符

    使用 T SQL 我将如何获取last 3varchar 列的字符 所以列文本是IDS ENUM Change 262147 190我需要190 SELECT RIGHT column 3 这就是你所需要的 你也可以做LEFT 以同样的方式
  • Flex 容器中的文本在 IE11 中不换行

    考虑以下片段 parent display flex flex direction column width 400px border 1px solid red align items center child border 1px so
  • IIS7 拒绝分块编码文件上传

    我有一个 Windows Apache2 PHP 应用程序 它使用分块编码接收文件 原因是 file上传是动态的 传输前不知道其长度 这一直开箱即用 效果很好 现在我需要将应用程序移植到 IIS7 PHP 问题是 IIS 无法接收分块文件
  • 为什么 Java 中不能有“List>”? [复制]

    这个问题在这里已经有答案了 在Java中 为什么下面这行代码不起作用 List
  • 如何为超类编写 Hibernate Criteria 查询并检查某个子类?

    如何为超类编写 Hibernate Criteria 查询并检查某个子类 假设我们有以下所有类都与 Hibernate JPA 映射 Entity Inheritance strategy InheritanceType JOINED pu
  • 为什么我无法在 Swift iOS 应用程序中使用 CIFilter 将图像反转回原始图像

    我正在开发一个简单的应用程序 它有一个带有预加载图像和按钮的图像视图 按下按钮时 图像视图中的图像应反转 它第一次工作 但我希望当我再次按下按钮时它会将图像反转回其原始形式 然而 第二次按下按钮时它崩溃了 这是相关代码ViewControl
  • 为什么Swift标准库中的reverse()函数返回Reverse RandomAccessCollection?

    现在我已经学习了 Swift 达到了合理的水平 我正在尝试掌握标准库 但实际上它对我来说主要是 所以一个具体的问题 我有一个字符串数组 我可以对其调用reverse let arr Mykonos Rhodes Naxos reverse
  • 如何向 hline 添加图例?

    我想在 hline 图中添加一个图例 我的子集的头看起来像这样 Site Date Al 1 Bo6 2014 10 07 152 1 2 Bo1 2014 10 07 157 3 3 Bo3 2014 10 07 207 1 4 Bo4
  • 如何在 python pyqtgraph PlotWidget 中设置刻度标签

    我正在尝试绘制每天几个小时的时间序列 每天之间没有空白时间 如果我使用 pg GraphicsWindow 则效果很好 刻度标签为 9 00 10 00 17 00 如果我使用 pg PlotWidget 或 pg PlotWindow A
  • Python 最佳实践 - 在哪里存储 API 密钥/令牌

    我正在构建一个使用 API 令牌和密钥来访问服务的系统 但存储它们的最佳位置在哪里 我想将代码推送到 GitHub 而不推送令牌 目前 我已将它们放在一个名为的空白文件中Constants py并且 在主 python 文件中 我导入Con
  • 将剪辑路径位置移动到鼠标光标

    我有一个 SVG 形状 用作clip path在图像顶部 SVG 形状应遵循鼠标的位置 如果我使用的话我可以让它工作clip path circle 但如果使用则不然clip path url idOfMask 就像我在使用 SVG 作为剪
  • 如何使用 PHP 将 Word 文档转换为 XML?

    我想将 Word 文档 doc 和 docx 转换为 XML 我如何使用 PHP 来做到这一点 完成此操作后 我必须在该 XML 文件中添加一些数据 有人可以帮我吗 Word 文档 docx 是一个xml文件 只需解压即可
  • 无法从字符串中删除“空字符”

    我问过类似的question https stackoverflow com questions 17580662 how to read a text file that contains null character in delphi
  • 模板中的模板输入和模板引用变量

    我们使用 let 关键字创建模板输入变量 同时使用 var 创建模板引用变量 其中 var 是变量的名称 我们可以在模板中的任何位置引用模板引用变量 模板输入变量的范围怎么样 它与模板引用变量的范围有何不同 有人可以通过例子帮助我理解吗 d
  • 反应本机状态不更新

    我感觉我快要疯了 我在搜索栏中输入 x 但是this setState filter text 没有更新状态 console log this state filter 给我一个值 它的初始值在构造函数中设置 我可以看到文本变量的值为 x
  • 如何在 Python 绘图程序中使用多点触控?

    我正在Python中构建一个简单的绘画程序作为一个项目 使用Pygame 它的工作原理是 当按下鼠标并在表面上拖动它时 它基本上会绘制一系列圆圈 它还有其他一些小事情发生 但事情我想问的是 有没有一种方法可以将您知道的 mouse get
  • Python:获取正则表达式匹配的文本

    我在 Python 中有一个正则表达式匹配对象 我想获取它匹配的文本 说如果模式是 1 3 搜索字符串是 abc123xyz 我想得到 123 我怎样才能做到这一点 我知道我可以使用match string match start matc
  • 仅当设置另一个属性时才需要某个属性

    是否可以做一个属性required如果设置了另一个属性 例如 在下面的代码中 viewId必须制作属性required iff action属性已设置 XML