问题标签 [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.

0 投票
0 回答
29 浏览

xml - XSD - 多次允许一个特定元素,而只允许其他元素一次

我正在尝试创建一个可以complexType在其中编写以下内容的内容:

基本上我希望能够以无特定顺序指定标签,但能够指定tag2无限次。我怎样才能做到这一点?

我已经尝试过 a choice,但似乎它允许任何元素无限次。

这是我的 XSD 的相关部分:

0 投票
1 回答
17 浏览

xsd - 如何将字母数字字段评估为部分数字和部分字母

我有一种情况,我的 XML 将包含可能以千字节或兆字节为单位的长度。XML 将如下所示:

我需要确保如果输入的数据以 K 结尾,则数字小于 2096129(且大于 0),但如果数据以 M 结尾,则数字需要小于 2048(且大于 0)。是否可以将除最后一个字符之外的所有内容都视为整数(因此我可以使用包含 min/max 的标签),但仍然在最后一个字符上使用模式?

0 投票
0 回答
64 浏览

c# - 类型安全的 XML 解析和验证

我有不同的 XML 文件类型,看起来像这样:

XML_A:

XML_B:

XML_C:

XML_D:

以及每种类型对应的 XSD 方案并从中生成 C# 类。

现在成像我需要验证这些节点并将它们的值与数据库和彼此进行比较(某种关系验证)。

每个节点都有自己的验证器,并且在所有 XML 文件中都是相同的(例如,NODE_1 在任何地方都具有相同的含义,就像 NODE_2 等一样)。

目前我用这样的东西验证一切:

由于某些节点类型是重复的(例如 XML_A、XML_B、XML_D 中的 NODE_1),因此每个节点类型都有一个验证器。

当 XML 更新(删除节点或更改其父子关系的新版本)时,问题就出现了。这并不意外,我得到了所有新的计划和课程,所以我可以为此做好准备。但是验证是基于文本的,所以我需要手动更新所有验证器,调整节点名称和 XPath(并且有 100 多个验证器)。

我想要的是使用生成的 C# 类进行验证,因此简单的重构将适用于更改关系的重命名和编译时错误。但由于有多种类型的 XML 文件,我不能这样做:

因为为每个 XML 类型定义了多个 NodeClass 类,即使它们是相同的。它们彼此没有关系,并且位于不同的 C# 命名空间中。尽管 XML 和 XSD 的命名空间是相同的。

所以问题是,如何使用生成的 C# 类进行这种验证,而不是重复每个节点类型的验证器?

PS XSD 版本是 1.0。

0 投票
1 回答
122 浏览

xml - 如何限制 Schema 中的日期和时间?

我在 XML 文件中有以下元素:

我如何限制XSDfromtxtimetxdate

只接受像03:15:pm and 03/07/2018

0 投票
1 回答
133 浏览

xml - 子元素的 XSD 数据类型取决于父元素的属性

我有一些看起来像这样的报告:

我需要一个描述上述 XML 的 xml 模式定义。到目前为止没有问题。我无法解决的问题是如何做如下:data元素的类型需要依赖于元素的datatype属性data set

数据类型可以是:字符串、浮点数或整数。例如,datatype属性设置为“integer”,所有子“data”元素都应限制为“xs:integer”类型。

这是我的 XSD,除了类型限制:

我很感激每一个有用的想法!

0 投票
2 回答
46 浏览

xml - 根据 XSD 1.0 中的日期范围验证枚举?

在 XSD 中,我想定义一个类型Country,包括设置可以使用的国家名称列表的限制。这可以通过使用枚举作为限制轻松完成。

但是,随着时间的推移,这个列表会有所不同。例如:过去我们有南斯拉夫,现在已经不存在了;克罗地亚、斯洛文尼亚等出现了。因此,一个国家/地区将有一个开始日期和(可能)一个结束日期。StartDate并将EndDate设置每个特定国家/地区的存在日期范围。

在验证 XML 时,我想验证 XML 是否指的是现有国家/地区。因此,XML 还将包含ReferenceDate用于检查 StartDate 和 EndDate 的变量。

其实我想Country用属性定义类型CountryNameStartDate然后Enddate设置。在验证 XML 时,例如值克罗地亚,ReferenceDate我想使用XSD 中定义的ReferenceDate类型来验证克罗地亚是否是 date 的有效国家。Country

考虑到我使用的是 XSD 1.0,有什么想法吗?

0 投票
1 回答
45 浏览

xml - 如果另一个没有值,XSD 1.0 将属性设置为 false

我正在尝试编写一个模式,其中我有两个属性IDrequired

  • ID可以是任何字符串或空字符串
  • required是布尔值真/假

如果没有文本,我需要设置required为 false 。ID

我在这个地方进行了搜索,发现这可以使用 XSD 1.1 完成,但我无法访问它,因为它在 Visual Studio 2017 中不受支持。在 XSD 1.0 中是否有替代方法?

这是架构的一部分:

0 投票
0 回答
19 浏览

xsd - 在给定标签内强制执行属性值唯一性,不一定在整个文件中

我想针对 XSD 1.0 验证 XML 文件,并要求一个属性的值该元素中是唯一的,但允许在不同的标签中重复。

例如,我希望属性 ( det) 不在每个<Client>标签中包含重复项,但我希望允许该属性在不同的客户端中具有重复项。

所以,我想让下面的片段有效......

...但不是下面这个:

可以用 XSD 1.0(这是我可用的软件中使用的版本)来完成吗?如何?

我已经进行了大量搜索,但我只能找到示例unique和主键以在整个 XML 文件中强制执行唯一性。

谢谢!!