Xml 相同深度下具有相同名称的XSD元素
我有一个问题,这个XSD片段是否有效:Xml 相同深度下具有相同名称的XSD元素,xml,xsd,Xml,Xsd,我有一个问题,这个XSD片段是否有效: <xsd:element name="yolo" minOccurs="0"/> <xsd:element name="yolo" /> XML示例: <yolo /> 感谢的 您应该具有以下架构 <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org
<xsd:element name="yolo" minOccurs="0"/>
<xsd:element name="yolo" />
XML示例:
<yolo />
感谢的
您应该具有以下架构
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="yolo" type="xs:string"/>
</xs:schema>
请使用联机工具生成schema to xml或xml to schema as和快速回答,代码段无效
假设您将上面的代码片段放在以下上下文中(为了明确相同的深度是什么意思,因为@Janty被它弄糊涂了):
假设您尝试使用.NET XSD处理器执行上述操作,则会出现以下错误:
元素“”的多个定义
导致内容模型变得不明确。必须创建内容模型
在元素信息项的验证过程中形成
序列,直接、间接或隐式包含的粒子
其中,用于尝试验证中序列中的每个项目
可以在不检查内容或属性的情况下唯一地确定回合
该项的属性,并且没有关于该项的任何信息
在序列的其余部分
如果您尝试使用基于Xerces的处理器
cos nonambig:::约洛和
“”:yolo(或来自其
替换组)违反“唯一粒子属性”。在期间
如果根据此模式进行验证,则会为这些模式创建歧义
两个粒子
XSD规范描述了cos nonambig(或多或少微软的实现错误消息)
然而,更令人困惑的是,一些处理器允许您覆盖UPA行为(具体地或间接地),因此很可能会尝试相同的操作,并且不会出现错误。。。微软使用Xerces和Xerces的功能做到了这一点
Microsoft文档适用于您的情况。。。这是他们的例子。。。匹配,不是吗
<xs:sequence>
<xs:element name="A" type="xs:string"/>
<xs:element name="B" type="xs:string" minOccurs="0"/>
<xs:element name="B" type="xs:string"/>
</xs:sequence>
谢谢,但我不想代表提供的示例XML编写XSD。我正在编写某种工具来验证XSD,我想知道——如果我的工具能够得到上面的XSD,它被认为是有效的吗?我知道我可以为这个例子编写一个“更好”的XSD。但这不是我的观点。谢谢,那么您应该学习xsd开发的基础知识。它将帮助你创建正确的模式。@Digital_现实,这不是你指出的文章的副本。非常详细的评论对我很有帮助。非常感谢。
<xs:sequence>
<xs:element name="A" type="xs:string"/>
<xs:element name="B" type="xs:string" minOccurs="0"/>
<xs:element name="B" type="xs:string"/>
</xs:sequence>