如何通过 xs:unique 使我的枚举变得唯一

2024-02-07

谁能指出为什么我的 XSD 中的独特元素没有强制唯一性?这应该会引发错误,因为最后一个ScreenResult元素不包含唯一值Type属性。我还应该指出,我确实在强迫其中一个之后Type within ScreenResults (ScreenResult需要存在 3 次,有 3 种类型的屏幕,并且我要求唯一性)所以如果有更好的方法来实现这一点,我也完全赞成。

谢谢。

这是我的 XML 片段:

<ScreenResults>
    <ScreenResult Type="Screen Type A">1</ScreenResult>
    <ScreenResult Type="Screen Type B">1</ScreenResult>
    <ScreenResult Type="Screen Type B">2</ScreenResult>
</ScreenResults>

这是我的 XSD 片段(另请注意,我的原始 XSD 片段跨越多个文件,但我已验证所有命名空间都是正确的):

<xs:element name="ScreenResults" type="import:ScreenResults" minOccurs="0" maxOccurs="1">
    <xs:unique name="UniqueScreenResults">
        <xs:selector xpath="ScreenResult" />
        <xs:field xpath="@Type" />
    </xs:unique>
</xs:element>

<!--============  ScreenResults  =============-->
<xs:complexType name="ScreenResults">
    <xs:sequence minOccurs="1" maxOccurs="1">
        <xs:element name="ScreenResult" minOccurs="3" maxOccurs="3">
            <xs:complexType>
                <xs:simpleContent>
                    <xs:extension base="enum:ScreenResult">
                        <xs:attribute name="Type" type="enum:ScreenType" use="required" />
                    </xs:extension>
                </xs:simpleContent>
            </xs:complexType>
        </xs:element>
    </xs:sequence>
</xs:complexType>

<!--=============  ScreenType  =============-->
<xs:simpleType name="ScreenType">
    <xs:restriction base='xs:token'>
        <xs:enumeration value='Screen Type A' >
            <xs:annotation>
                <xs:documentation>1</xs:documentation>
            </xs:annotation>
        </xs:enumeration>
        <xs:enumeration value='Screen Type B' >
            <xs:annotation>
                <xs:documentation>2</xs:documentation>
            </xs:annotation>
        </xs:enumeration>
        <xs:enumeration value='Screen Type C' >
            <xs:annotation>
                <xs:documentation>3</xs:documentation>
            </xs:annotation>
        </xs:enumeration>
    </xs:restriction>
</xs:simpleType>

<!--============  ScreenResult  ============-->
<xs:simpleType name="ScreenResult">
    <xs:restriction base='xs:token'>
        <xs:enumeration value='1' >
            <xs:annotation>
                <xs:documentation>Positive</xs:documentation>
            </xs:annotation>
        </xs:enumeration>
        <xs:enumeration value='2' >
            <xs:annotation>
                <xs:documentation>Negative</xs:documentation>
            </xs:annotation>
        </xs:enumeration>
        <xs:enumeration value='3' >
            <xs:annotation>
                <xs:documentation>Not administered</xs:documentation>
            </xs:annotation>
        </xs:enumeration>
    </xs:restriction>
</xs:simpleType>

我正在为遇到此问题的其他人发布我的解决方案。
尽管我断言我的所有名称空间都是正确的,但这当然是问题所在。所有命名空间都是正确的except关于独特的元素本身。
我错误地认为唯一元素不需要为命名空间添加前缀,因为它位于上下文中。但事实并非如此。由于我确实为该文件声明了默认名称空间,因此我仍然需要前缀。

所以我唯一的改变和解决方案如下:

<xs:element name="ScreenResults" type="import:ScreenResults" minOccurs="0" maxOccurs="1">
    <xs:unique name="UniqueScreenResults">
        <xs:selector xpath="import:ScreenResult" />
        <xs:field xpath="@Type" />
    </xs:unique>
</xs:element>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 xs:unique 使我的枚举变得唯一 的相关文章

  • 如何使用 Xerces 同时使用 Maven 从 XSD 1.1 生成源

    我有一个带有断言标签的 XSD 文件 我读到 Xerces 支持带有这些标签的 XML Schema 1 1 草案 如何在我的 Maven 构建中使用实际的 Xerces 版本 而不是标准 Java 实现 使用 Xerces 版本的一种旧方
  • Eclipse XSD 编辑器

    如何启动或安装 Eclipse XSD 编辑器 根据this http wiki eclipse org index php Introduction to the XSD Editor看来它应该开箱即用 我创建了XMLExamples项目
  • 如何使用增量值向 Pyspark 中的 DataFrame 添加列?

    我有一个名为 df 的 DataFrame 如下所示 Atr1 Atr2 Atr3 A A A B A A C A A 我想向其中添加一个具有增量值的新列并获取以下更新的 DataFrame Atr1 Atr2 Atr3
  • Python 对象属性 - 访问方法

    假设我有一个具有某些属性的类 在 Pythonic OOP 中 如何访问这些属性是最好的 就像obj attr 或者也许编写 get 访问器 此类事物可接受的命名风格是什么 Edit 您能否详细说明使用单下划线或双前导下划线命名属性的最佳实
  • XSD 格式

    该 XSD 部分来自 http www iana org assignments xml registry schema netconf xsd http www iana org assignments xml registry sche
  • 属性上的 ConditionalAttribute 有什么作用?

    我知道什么ConditionalAttribute does 文档说它也可以应用于一个类 如果它派生自Attribute Conditional DEBUG public class FooAttribute Attribute 但该自定义
  • 特殊名称属性还允许哪些其他巧妙的技巧?

    研究中一个问题 https stackoverflow com questions 13259162 vb net power operator overloading from c sharp关于实现 Visual Basic Power
  • & 在 xml 文件中算作一个还是多个字符?

    我正在使用的 XML 模式具有特定的字符串字符长度 所以我可能有一个类似的字符串 Jim Mary 在 C 中是 10 个字符 但是当它写入 xml 时 它会变成 Jim amp Mary 如果 XML 模式规定字符串最多只能有 10 个字
  • 将巨大的模式编译成Java

    有两个主要工具提供了将 XSD 模式编译为 Java 的方法 xmlbeans 和 JAXB 问题是 XSD 模式确实很大 30MB 的 XML 文件 大部分模式在我的项目中没有使用 所以我可以注释掉大部分代码 但这不是一个好的解决方案 目
  • xsi:type 属性搞乱了 C# XML 反序列化

    我使用 XSD exe 根据 XML 架构 xsd 文件 自动生成 C 对象 我正在反序列化 OpenCover 输出 但其中一个部分类未正确生成 这是导致异常的行
  • 如何让 LinqToXSD 正确输出命名空间前缀声明?

    我正在尝试创建 XML 数据绑定类LinqToXSD http linqtoxsd codeplex com 以及包含许多导入模式的 XML 模式 所有的模式都是位于这里 http www spiraltechinc com Tmats 为
  • 在 Java 中使用 Batik 检查和删除 SVG 中的属性

    这个问题基本上说明了一切 如何检查 SVG 是否具有 viewBox 属性 我正在使用蜡染库 我需要这个 因为我需要 至少 通知用户有一个 viewBox 属性 我可以删除它吗 使用 org w3c dom 类 您可以按照以下方式做一些事情
  • Maven - 将 XSD 作为依赖项

    我们有一个项目定义了它使用 XSD 文件生成的消息格式 将这些 XSD 文件作为另一个项目的依赖项的最简单方法是什么 我正在考虑使用maven build helper 附加工件 http www mojohaus org build he
  • postgresql 登录到另一个表时发生冲突

    我正在使用 PostgreSQL 9 5 并尝试使用批量插入每天插入数百万行 INSERT INTO tours as cst adults country id price VALUES 3 129 80 2 119 120 on con
  • xml 模式属性参考

    我有这个 xml 模式
  • 将 XSD 文件转换为 C# 可序列化类

    我尝试遵循以下答案这个问题 https stackoverflow com questions 87621 how do i map xml to c objects 但无法让 xsd exe 愉快地获取 XSD 文件并将它们转换为类 此处
  • UML 的 XMI 有 XSD 吗?

    是否有 UML XMI 文件的 XSD 标头仅包含名称空间引用
  • python suds SOAP 请求中的名称空间前缀错误

    我使用 python suds 来实现客户端 并且在发送的 SOAP 标头中得到了错误的命名空间前缀 用于定义由element ref 在 wsdl 中 wsdl 正在引用数据类型 xsd 文件 请参见下文 问题出在函数上GetRecord
  • JAXB - 列表<可序列化>?

    我使用 xjc 制作了一些课程 public class MyType XmlElementRefs XmlElementRef name MyInnerType type JAXBElement class required false
  • 如果产品重量超过1000克,如何以公斤为单位显示

    在 Storefront 主题中 我使用下面的代码将格式化重量从 1000g 更改为 1kg add action woocommerce after shop loop item title show weight 10 function

随机推荐

  • Sql Server——去掉非数字字符

    我有一张桌子 SET ANSI NULLS ON GO SET QUOTED IDENTIFIER ON GO CREATE TABLE dbo TestAB A int IDENTITY 1 1 NOT NULL B nvarchar 1
  • tf 签入特定文件夹

    在 Visual Studio 的 checkin 命令文档中 它说 不使用 签入 对话框签入对单个项目的更改 c code SiteApp Main gt tf checkin program cs noprompt 如何查看特定文件夹
  • 以编程方式显示文本视图选取框

    尝试从数组填充文本视图 我通过下面的代码设法通过 XML 获得了所需的效果
  • 如何检查 Backbone.View 当前是否在 DOM 中呈现?

    我想检查 Backbone View 当前是否在 DOM 中渲染 如果没有 我不必重新渲染它 我可以以某种方式检查一下吗 Regards 好吧 理论上你可以查询 DOM 来找出答案 但这比仅仅设置一个实例变量并在渲染之前查询要慢得多 另一方
  • TabView 的 SwiftUI 动画选项卡

    在 SwiftUI 中使用 TabView 时 是否可以修改选项卡选择之间的转换 目前 当选择不同的选项卡时 转换非常突然 居然瞬间突然 哎哟 例如 给定以下情况 TabView Text The First Tab tabItem Ima
  • LDA和主题模型

    我研究了几个星期的LDA和Topic模型 但是由于我的数学能力很差 我不能完全理解它的内部算法 我使用了GibbsLDA实现 输入大量文档 并将主题数设置为100 我得到一个名为 final theta 的文件 它存储每个文档中每个主题的主
  • CakeEmail 如何在堆栈跟踪之前确定失败?

    我试图捕获电子邮件失败的时间 以便我可以将所需的数据保存在我的数据库中 并且可以尝试稍后发送 我认为以下内容应该像使用时一样工作save if email gt send success works else fail never gets
  • 按日期范围连接表[重复]

    这个问题在这里已经有答案了 我正在寻找按日期范围连接两个表的简单方法 一个表包含确切的日期 另一个表包含两个标识时间段开始和结束的变量 如果第一个表中的日期在第二个表的范围内 我需要连接表 data1 lt data table date
  • npm 警告可选跳过可选依赖项:[电子邮件受保护]

    我正在尝试使用 Angular CLI 安装 Angular 但当我尝试运行此命令时遇到错误 Command npm install g angular cli Error C Users abc gt npm install g angu
  • Makefile 动态变量作为先决条件

    也许这是我搞错了 基本上我的任务是使用make自动构建 部署 启动 停止不同的服务 我想做的事情之一是将变量作为目标先决条件 但是必须在另一个目标中更改该变量 这是我正在尝试做的事情的基本示例 IMAGE COUNT 1 count ima
  • ios7设备底部空间狭小

    我们正在开发一个适用于 ios6 和 ios7 的应用程序 我的问题是 如果我在设备中检查我的应用程序 则会发现一个小的空白区域 其大小等于屏幕底部状态栏的大小 如果我在屏幕顶部放置一个虚拟状态栏 它会在 ios6 中出现问题 如果您有任何
  • 如何将本地创建的函数和变量作为组件中的 props 传递?

    我有一个按钮组件 一个哑组件 我想附加一个可选的动画 并将该动画传递到 props 中 由另一个 prop 的布尔值触发 我在尝试同时通过这两个项目时不断遇到错误 Unknown prop ripple on
  • 确定 Mac 上 Java SDK 的版本

    我有一台运行 Snow Leopard 的 MacBook Pro 如何查看我的 Mac 上安装的 Java SDK 版本 打开终端并输入 java version or javac version 如果您拥有 Snow Leopard 的
  • 这是 Primefaces 错误还是 Mojarra/MyFaces 错误

    当我在里面时 我似乎无法触发事件column of dataTable 这是我的简单演示
  • Angular 7错误RangeError:超出最大调用堆栈大小

    我正在尝试通过以下方式学习角度官方教程 https angular io tutorial 但是当执行以下步骤时hero component and hero detail component 它会引发错误 RangeError 超出最大调
  • HQL:是否可以在子查询上执行 INNER JOIN?

    上图是我用来记录项目位置随时间变化的数据库结构的简化版本 我编写了以下 SQL 查询 该查询返回每个位置的当前商品库存 select from ItemLocationLog l inner join select g idItemLoca
  • 如何拥有 Active Admin 嵌套和非嵌套资源视图?

    一个用户有很多交易 我当前已将活动管理员设置为使用 admin transactions rb 中的 own to user 将事务嵌套在用户下以进行基本 CRUD 然而 我还需要一个事务的顶级视图 以显示跨用户的事务记录的子集 我怎样才能
  • 谷歌地图信息框 - maxWidth

    我面临谷歌地图信息框的奇怪行为 我将 maxWidth 调整为 0 以便让信息框大小根据内容进行调整 但我总是得到 236px 的信息框 var infobox new InfoBox maxWidth 0 pixelOffset new
  • 了解内存性能计数器

    更新 2010 年 9 月 30 日 由于我对此主题及相关主题进行了很多研究 因此我将写下我从此处答案中提供的经验和建议中收集到的任何提示 1 使用内存分析器 首先尝试使用 CLR Profiler 并找到消耗最大内存的例程并对其进行微调
  • 如何通过 xs:unique 使我的枚举变得唯一

    谁能指出为什么我的 XSD 中的独特元素没有强制唯一性 这应该会引发错误 因为最后一个ScreenResult元素不包含唯一值Type属性 我还应该指出 我确实在强迫其中一个之后Type within ScreenResults Scree