问题标签 [xmlschema]

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 投票
1 回答
133 浏览

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

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

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

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

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

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

0 投票
1 回答
250 浏览

notepad++ - 如何更改已为 XML 模式验证设置的路径

根据开发人员设置的 XSD 格式,我有一堆 XML 失败,我正在使用 Notepad++ 验证我们组织提供的模式,

我已经下载了xml工具插件,将它与notepad ++集成,现在当我验证文档时它应该要求一个路径,我最近设置不正确,现在我想更改路径,但每次我现在点击验证,它弹出没有检测到错误。

我只想将路径再次更改为之前提供的路径,以便它可以相应地工作..

请帮助解决此问题。

0 投票
1 回答
147 浏览

c# - 如何从 XML 持久性格式文件导入/导出?

我有一些看起来像这样的 XML 文件:

我需要将类从 C# 代码导出到这个 XML 模式。我试图找到一些信息,并找到了 ADO DB 和 MSSQL 的示例。我没有 MSSQL 服务器。我试图导出 DataSet,但我得到了另一个模式。我需要来自示例的相同架构。有任何想法吗?

0 投票
1 回答
95 浏览

java - 我可以使用 XML Schema 来验证没有 xmlns 属性的文档吗?

我有一种情况,我想开始使用 XML 模式来验证直到现在还没有模式定义的文档。因此,我要验证的现有文件中没有任何xmlns声明。

我成功验证包含声明的文档没有问题xmlns但我也希望能够在没有此类声明的情况下验证这些文档。我希望有这样的事情:

没有这样的方法DocumentBuilder.setDefaultNamespace,因此在加载这种类型的文档时不会执行模式验证。

如果未设置,有什么方法可以强制文档的命名空间?或者这是否需要在不考虑架构的情况下解析 XML,检查现有命名空间,调整它,然后使用架构重新验证文档?

我目前期望解析器在解析期间执行验证,但是我先解析然后再验证没有问题。

更新 2021-01-13

这是我正在尝试做的一个具体示例,作为 JUnit 测试用例。

所有的测试都通过了,除了testConformingDocumentWithoutSchema. 我认为这是意料之中的,因为文档没有声明命名空间。

我在问如何更改测试(但不是文档本身!),以便我可以根据文档实际未声明的模式验证文档。

0 投票
1 回答
59 浏览

prolog - prolog中的持续时间比较

我用一些 xsd:duration 数据类型制作了一个 OWL 本体。然后我使用 Thea 将其转换为 prolog 事实。

我有以下 xsd:duration 结构PnYnMnDTnHnMnS。如何编写序言规则来比较两个持续时间,以确定哪一个更大?

当我从我的 prolog 事实中检索数据时,它具有以下形式:

literal(type('http://www.w3.org/2001/XMLSchema#duration', Value))

我设法使用以下方法提取价值:

这导致(例如):

仍然不知道如何比较它们。

0 投票
2 回答
67 浏览

xml - XSD - 包含所有固定值的列表

什么是正确的 XML Schema 声明:

这两个属性的每个值都应该在 XSD 枚举中。

到目前为止,我尝试过:(它不起作用)

使用此网站进行测试: https ://www.freeformatter.com/xml-validator-xsd.html

0 投票
1 回答
889 浏览

java - 如何使用 Java 和 XmlSchema Core 解析 XSD 并读取所有复杂元素及其子元素

我正在使用该Apache XmlSchema Core库来解析XSD文件并获取所有元素及其子类型(数据类型、maxOccurs 等)。我正在关注文档Apache XML SCHEMA CORE并尝试这样做。但是在导航到某个点后,我有点困惑。有人可以指导我如何遍历我的XSD文件并获取所有元素及其子元素以及相关信息吗?

我能够在我的schema元素中获取所有 XSD 信息我只想知道如何从我的根访问子元素RootFood并获取其相关信息。任何帮助将非常感激。

我试图进一步继续,这就是我到目前为止所拥有的:元素RootFood属于 class 的实例XmlSchemaGroupParticle。我尝试调试代码以查找与我关联的元素rootParticles,它具有调用的字段items,其中我有我的food元素items->[0]->namedDelegate->qName->localPart,但是当我尝试添加GET方法rootParticles以获取items然后没有这样的方法。

XmlSchemaParticle扩展了以下类:,XmlSchemaAnnotatedXmlSchemaObject并实现了接口XmlSchemaObjectBase,但它们都没有名为 的字段Items

以下是我到目前为止的Java代码,我尝试了几件事:

以下是XSD我拥有的文件:

在此处输入图像描述

0 投票
2 回答
129 浏览

java - Apache XMLSchema 核心 XSD/XML 解析器将根元素显示为所有子元素的父元素,而不是其直接父元素

我正在尝试解析XSDusing Apache XMLSchema Core. 我能够解析文件并将Parent其及其Child Element信息存储在HashMap.

每个Child元素都存储在类型中,该类型XmlSchemaElement也包含Parent该子元素的信息。当我尝试查看与子元素相关的信息时,它会显示Root所有元素而不是其直接父元素。

例如:在 myXSD中,RestaurantMenuRoot元素,它的直接子元素是Food。此外,Food还有 childrens namepricecalories。当我看到 parent 元素时,name我希望它是Food直接的 Parent 但在Debug显示RestaurantMenu为它的父元素时,这有点令人困惑。

我想知道如何获取与每个元素的直接父级相关的信息。

以下是我的XSD文件:

以下是我使用以下代码编写的代码Apache XmlSchema Core XML Parser:我正在尝试这样Debug做:

上面的代码将返回Children食物的所有元素:name, price, calories, description, ingredients。然后我试图查看其中一个元素的父级,即name. 以下是我正在采用的调试路径:

在这qName我期待那food是我的直接父母,但我得到了RestaurantMenu这是我的Rootxsd 元素。

请在下面找到完整的代码:

0 投票
0 回答
22 浏览

xml - 子元素类型取决于父属性值的 XML 模式

是否可以为所有节点名称具有相同名称且只能由属性值标识的 XML 编写 XSD 模式?

示例 XML 数据:

不幸的是,我无法更改 XML 结构并将标记名称设置为与“名称”属性相同的值,因为它可能包含空格字符甚至一些特殊字符,例如感叹号等。

重要的是,每个嵌套节点也可以是复合类型,其子节点将具有类似的结构,元素名称为“param”和标识它们的“name”属性。

当然,节点子节点的结构应该取决于它的“name”属性,因此,例如,当我们将“电话号码”标签移动到“家庭地址”节点时,我们的模式应该将此类 XML 标记为无效。

XSD Schema 验证失败的无效 XML 示例:

0 投票
2 回答
43 浏览

xml - XML Schema - 针对 xml 验证 xsd - 内容无效

这是我的 XML 代码- 这部分格式正确,在进行验证时不包含任何错误。

这是我的 XSD 代码:问题就在这里。我将其视为错误“元素”:内容无效。预期为(注释?,((simpleType | complexType)?,(唯一| key | keyref)*))。

我是使用 xml 和 xsd 的初学者。问题如下:

使用以下架构命名空间:

  1. http://www.w3.org/2001/XMLSchema-instance
  2. 最小和最大员工人数:
  • 最低:1
  • 最大值:无界
  1. 薪水在 10,000 到 90,000 之间(含)。
  2. 将以下元素的类型声明为全局类型:
  • - 将此 complexType 的名称写为 name

  • - 将此 simpleType 的名称写为薪水