问题标签 [xsd-1.1]
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.
java - 元素“断言”无效、放错位置或过于频繁地出现
供应商向我们提供了一组模式(我们也提醒他们注意错误)。
当我尝试使用 xjc 生成 Java 类时,它失败并出现以下错误
解析架构...
[错误] s4s-elt-invalid-content.1:“ICSBatchV01”的内容无效。元素 'assert' 无效、放错位置或过于频繁地出现。文件的第 77 行:/C:/Users/.../ICSv1.01.xsd
[错误] s4s-elt-invalid-content.1:“ICSDocBody”的内容无效。元素 'assert' 无效、放错位置或过于频繁地出现。文件的第 215 行:/C:/Users/.../ICSv1.01.xsd
无法解析架构。
我还尝试了 java 8,以及最新最好的 jaxb(在 java dist 之外)
但是,它确实适用于 Altova 的 xmlspy 软件,但试图避免供应商锁定/非标准的东西。
我在这里和网络上做了一些搜索(主要是在这里)
这是标题。
这是相关的片段。
从第 44 行开始到第 77 行结束(xjc 转换报告第一个错误的地方)
xml - XSD怎么写 或者传导
我有在 XSD 中编写或传导的要求。例如 memberName 可以是 companyName 或 firstName 或 middleName 或 lastName。任何一个名称都应该存在于 xml 文档中/就像任何一个名称在 XML 中都是强制性的。
完整的 XSD
如何在 XSD 中编写限制或 OR 传导。
谢谢你的帮助。
xml - XSD 元素与元素不一致
我必须使用 XSD 验证 XML。
XML 可能如下所示:
XML 也可能如下所示:
在第一个 XML 中,uuid 的类型是xs:integer
。在第二个 XML 中,uuid 的类型为xs:string
。
为了在 XSD 中验证这些 XML,我决定groups
在choice
.
我的 XSD 看起来像这样:
使用 XMLSpy,我收到以下错误:
是的,它们并不一致,但这正是我想要的 :-)
那么,我该如何更改 XSD,以便我可以在不同组中使用具有不同类型但在一样的选择?uuid 不是唯一的元素,可能会有所不同,这就是我实施group
-solution 的原因。
感谢您的帮助!
编辑 要绕过 uuid 的歧义,此示例中的顺序并不重要。<uuid> 也可以是例如最后一个元素。
xml - XSD 1.1 检查属性是否存在于另一个元素中
我的 XML 文件序列和状态关系中有 2 个主要部分。序列部分定义为。根据下面定义的 4 个属性,Transition 元素应该是唯一的。
StateRelations 部分定义如下。“ stateName1 ”实际上是一个外键(keyref),与Transition的“ stateName ”(key)相关。注意:关系元素实际上是递归的。
问题出现在以下场景中。由于 Transition 具有基于 4 个属性的唯一约束,因此以下 XML 是有效的。
如您所见,stateName=S3可以重复多次。但是这种重复打破了Transition和Relationship之间的主外键关系。原因:stateName 可以在 Transitions 中重复。现在,我们在这里发生了冲突。我的最终目标是拥有
基于 4 个属性的独特序列
StateRelations 中的每个stateName1都应该是 在 Transitions 中定义的有效stateName 。
到目前为止,我知道 key-keyref 在我的场景中不起作用,所以我开始研究assert但我无法让它工作。我尝试了以下方法,但似乎没有任何效果。
编辑:这是 XSD(我省略了一些细节)。/Replay/StateRelations/Relation/@stateName1
现在,我想以某种方式验证/Replay/Sequence/Transition/@stateName
. 我不能使用 key/keyref 因为/Replay/Sequence/Transition/@stateName
不会是唯一的。
java - 在 Java 1.8 中针对 XSD v1.1 模式验证 xml 文件的示例
- 我当前的验证不适用于 XSD v1.1 Schemas .. 我尝试了很多方法来改变它,但直到现在都没有成功
- 解决方案是用 Saxon 还是 Xerces 完成对我来说并不重要(编辑:我不想花钱来解决问题,而且看起来 Saxon XSD1.1 验证不是免费的,所以我想我必须坚持赛斯)
- 是的,我已经为此搜索过,但到目前为止,没有任何代码片段可以帮助我获得有效的验证。
- 该代码将在 Eclipse 插件中使用,如果这很重要的话
- 我将以下 jar 文件添加到项目/类路径中,但看起来它没有在我的代码中使用:
这是我迄今为止用于验证的代码(如果不能用于 xsd1.1,则转储它没有问题):
xml - 以编程方式将 XSD 1.1 架构转换为 XSD 1.0?
如何通过剥离所有 1.1 功能并仅保留与 XSD 1.0 兼容的子集来自动将 XSD 1.1 架构转换为 XSD 1.0 架构?
我意识到这会限制您可以利用多少 XSD 1.1 功能,但我想象的用例是一个模式,您可以在其中发布 XSD 1.1 版本和更兼容的 XSD 1.0 版本,两者都描述了相同的数据结构,但 1.1 版本具有一些额外的<assert>
数据完整性检查。
xml - 在命令行 (Linux) 上针对 XSD 1.1 架构 / XSD(使用 Saxon-B / saxon 9.1.0.8)验证 XML
几天来,我一直在尝试针对 1.1 Schema/XSD 对 XML 进行 linux 命令行验证以使其正常工作。(我并不关心这个工具,只要它是一个支持 xsd 1.1 语句的免费 linux 工具,如“assert”)
到目前为止,我发现/尝试过:
xmllint(似乎它不支持 XSD 1.1 Schema?)(我过去曾非常成功地将 xmllint 用于 xsd 1.0)
Saxon 的最新版本仅支持企业版 (EE) 的 XSD 验证——我没有。
stackoverflow 上有许多线程,包括其中一个提供的工具
据说就像打电话一样简单
java com.saxonica.Validate [options] source.xml...
-xsdversion:1.1
调用验证器时我必须使用许多人声称它适用于 Saxon-B,但没有具体的例子
我已经从 SF 下载了 Saxon-B / saxon 9.1.0.8 的源代码,但没有找到“com.saxonica.Validate”类(不应该是 net.sf.saxon....)
例如调用:
./java -cp "<path to saxon libs>/lib/saxon-9.1.0.8.jar" com.saxonica.Validate /home/<myuser>/test.xml
Fehler: Hauptklasse com.saxonica.Validate konnte nicht gefunden oder geladen werden
(“找不到主类”)(显然我需要提供更多选项来验证模式,但由于找不到类,...)
运行 Java 1.7 build 71
bin$ ./java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
有没有人有一个工具(最好是 saxon-B)的工作示例,我可以在 linux 命令行上针对 XSD 1.1 验证 XML?
谢谢,
e
xsd-validation - 基于属性的 XSD 条件子元素
我有一个xml,它可以有两种类型的节点,如下所述:
类型 1:
类型 2:
如果 attr1 值为 false,那么它会有子节点,并且没有 attr3,attr4 将在那里
如果attr1 值为true,那么它不会有任何子节点,并且attr3、attr4 将在那里。
spring - Jboss 6,弹簧和 Xerces
我必须在我的webapp(Spring 3)中使用xerces(xsd v1.1)验证xml,需要部署在jboss 6服务器中。但是我在部署中遇到错误。这在 Tomcat 中不会发生。它抛出以下异常:
我尝试使用 jboss-web.xml 和 jboss-classloading.xml 进行一些配置,但我没有工作。有什么想法?
xml - 当另一个元素具有特定值时,需要 XSD 中的 XML 元素吗?
I need a required attribute or element only if a specific value of an enumeration is chosen. 下面的例子: