问题标签 [xsd-1.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml - XSD 验证:导致找不到根元素的命名空间
我正在尝试更新现有架构以使用其自己的命名空间,因此我可以稍后将其导入另一个架构并明确正在使用的类型来自导入的架构。
我尝试更改默认命名空间和目标命名空间,但它导致架构验证中断并隐藏根节点。从我所看到的我已经将我的根元素隐藏在另一个命名空间中,但我不确定如何配置它以获得我想要的结果。
这是我尝试过的基本示例
XML
XSD
验证
无效。
错误 - 第 1、19 行:org.xml.sax.SAXParseException;行号:1;列号:19;cvc-elt.1:找不到元素“父”的声明。
xsd - 将 ID 添加到派生类型
simpleType
用字符串restriction
和命名*pattern*
。此 sT basicType应用于多个elements
. 问题是其中两个elements
需要将类型更改为 base="xs:ID"。
这可以通过创建唯一的 sT 来完成:一个 sT 用于使用基本 ID 的*pattern* restriction
字段,另一个 sT 用于需要 ID 基础的两个字段。问题是模式必须在两个 sT 声明中重复。这是我的应用程序中的一个问题,但我想了解是否有另一种方法可用。具体来说,一种允许模式被继承的模式,因此由于所有常见的原因而不会被复制。顺便说一句:任何替代的 XSD 1.0 方法都可以。我不打算将其仅限于simpleType
解决方案。
我想做的是有一个单一的模式sT 可以应用于非 ID 字段,并有另一个派生的 sT 为需要 ID 的字段添加 ID 基础,同时继承其他 sT 的模式。因此,模式只在一个地方定义和维护。
FWIW,这是一个 MSXML6 Excel 应用程序。
以下代码片段显示该模式在每个 sT 中都有重复。
问)如何简化这个过程?
xml - 如何根据 XSD 中另一个 XML 列表的大小限制 XML 列表的大小?
我有一个 XML 模式,其中的一个片段如下所示:
我想限制/验证列表的大小inputFields
并且outputFields
相等。如何在 XML Schema 本身中实现这一点?
xml - XML Schema:将 simpletype 转换为匿名类型
我有一个架构,我想将 simpleType 转换为匿名 simpleType。原始架构如下,我做了几次尝试,例如:
删除 base="xxx";
在扩展后添加 simpleType;
ETC...
但最终得到无效的架构。
问题:
- 如何在不丢失信息的情况下将输入转换为有效的匿名 simpleType 模式?
- 此外,是否有 xslt 可以通过元素名称、类型名称等的动态输入自动执行此操作?
提前致谢,
输入模式:
我的尝试结果:
验证表明这是一个无效的模式,错误如下:
element 中需要属性“base”。
元素下不允许使用元素。
element 中需要属性“name”。
xml - xsd 中的全局键/唯一属性
那些日子我正在尝试找到一种方法来创建一个全局属性,该属性将被架构中的所有元素使用,并将作为它们的关键/唯一属性。看下一个例子:
现在让我们说,例如,我创建了 1 个父母和 2 个孩子,我想在 id 属性上定义一个键/唯一,以便所有元素 id(父母和孩子)彼此不同。
xml - XML Schema (XSD) 1.0 xs:pattern regex 匹配 4 位数字作为字符串?
如何匹配特定的数字序列,就好像它是 XML Schema 中的字符串一样xs:pattern
?
假设我有一些包含任意 10 个字符的字符串的标签,例如
<string>12345678990</string>
而且我想排除所有带有特定黑名单的任意序列的标签,如1234
, 2435
, ``9587` 或类似的。
如何处理特定的 4 位子字符串以否定它并将其添加到 的内容模型的xs:pattern
限制列表中<string>
?
xml - 我们可以提供 XSD 属性元数据吗?
我有以下 XSD:
我在下面创建了 XML:
我们可以提供有关具有属性的元素的更多信息。但是,我的问题是我们可以提供关于属性的元数据吗?我的目标是在 UI 中将“element1”显示为表格行,将“date”/“scale”显示为表格的列。此外,我想为比例和日期列添加一些验证,以及我想在 XSD 中提供的信息。即应该应用什么验证器来缩放以及我想在缩放单元格上显示什么小部件?ETC..
xml - XSD“版本”属性语义
XSD 规范https://www.w3.org/TR/xmlschema11-1/#declare-schema没有指定version
属性的语义:
其他属性 (
id
和version
) 是为了方便用户,本规范没有为它们定义语义。
W3C 版本控制指南https://www.w3.org/TR/xmlschema-guide2versioning/也没有。
是否应该使用该属性来指定 XML Schema 文档的版本(例如2.3.1
),或用于编写模式文档的 XSD 语言的版本(例如1.0
或),是否已达成共识1.1
?还是设计人员/开发人员仍然选择语义?
xml - XSD 中元素的唯一值
我正在尝试在多个 complexType 元素中使用的元素中强制执行唯一值。
例如 :
如果我有类似的东西,我希望这失败:
但验证
目前两者似乎都有效。我已经尝试过选择器./*/pos
和.//pos
选择器,但要么导致第一个示例验证失败。
xml - 我应该在 xs:field 中使用什么 XPath 表达式来选择元素内容?
我知道通常人们使用/the/path/to/a/node/text()
提取字符串值。这还不足以解决我的问题。
我正在使用 XML Schema 1.0 版来定义一些文档类型。我正在尝试keywords
为文档类型创建一个非常简单的部分。所以我首先创建了一个非常简单的复杂类型。
所以现在我有一个类型,它可以包含任意数量的包含xs:token
值的元素的列表。我的问题始于如何禁止重复的问题。
我已经经常使用这个非常微不足道的任务xs:key
,xs:unique
但我只为属性值或更深层嵌套的元素做过它。例如,如果关键字值存储在一个名为的属性中,value
我知道我可以做这样的事情。
真正让我感到困惑的是,这<xs:selector xpath="child::tag"/>
足以让 XML 解析器定位这些值,但我必须至少包含一个xs:field
tag。
起初我认为我应该指定<xs:field xpath="text()"/>
引用节点的文本内容,但是当我这样做时,我从OxygenXML收到一条错误消息。
c-general-xpath:表达式“text()”对于 XML Schema 支持的 XPath 子集无效。
我收到了 , 和其他一些类似消息的类似child::text()
消息./text()
。通过使用单个点来引用当前节点,我已经摆脱了错误消息,但我不知道是否.
是要使用的正确表达式。
那么我应该在xs:field
标签中放什么?