当前位置: 首页 > 知识库问答 >
问题:

XSD验证错误-在相同定义中引用的复杂类型

储毅
2023-03-14

我试图编写我的第一个XSD . . . XSD如下,不验证。

<xsd:schema elementFormDefault="qualified" 
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">   
    <xsd:complexType name="Hdr">
        <xsd:sequence>
            <xsd:element name="ID" type="xsd:string" />
        </xsd:sequence>
    </xsd:complexType>    
    <xsd:element name="Header" type="xsd:Hdr" />
</xsd:schema>

我在用http://www.utilities-online.info/xsdvalidation/为了验证

我得到了这个错误

无效。错误-第7行,49:org.xml.sax.SAXParseExctive; lineNumber: 7; block nNumber: 49; src-解决.4.2:解决组件“xsd: Hdr”的错误。检测到“xsd: Hdr”在命名空间“http://www.w3.org/2001/XMLSchema”中,但此命名空间中的组件不能从架构文档“null”中引用。如果这是不正确的命名空间,可能需要更改“xsd: Hdr”的前缀。如果这是正确的命名空间,则应在“null”中添加适当的“导入”标签。错误-第7行,49:org.xml.sax.SAXParseExctive; lineNumber: 7; block nNumber: 49; src-解决:无法将名称“xsd: Hdr”解析为(n)“类型定义”组件。

我不知道我的XSD出了什么问题。有人能指导一下吗?

共有1个答案

井誉
2023-03-14

改变

  <xsd:element name="Header" type="xsd:Hdr" />

  <xsd:element name="Header" type="Hdr" />

如果定义了目标命名空间,您将使用它的前缀来引用Hdr,但是您永远不会使用http://www.w3.org/2001/XMLSchema命名空间来进行这样的引用。

 类似资料:
  • 我一直在寻找一种能够让我: 验证复杂的(大结构、许多可选的元素子/序列、固定顺序等)XML; 为每个检查/检查块/规则定义自定义错误消息(类似XSD处理器的错误对我没有用); 如果可能,以人类可读的方式有效地定义验证模式/规则; 换句话说,类似Schematron的东西(允许自定义错误MSG,可读性等),但对于复杂的结构检查仍然很好(XPath对于顺序检查之类的事情效率很低)。 是否有一些合适的技

  • 我有以下xml: 我在网上验证了xml,它的格式很好。接下来我做了架构: 当我尝试在线验证时,会出现以下错误:http://www.utilities-online.info/xsdvalidation/?save=72595340-b1e9-4061-a655-c6cfb9cdac44-XSD验证#。USIxpqw1pi点击按钮根据xsd验证xml并查看所有错误。有人知道如何毫无差错地解决这个问

  • 我想验证两种类型的XML“过滤器”块,其“形状”包含两个值:“空”或“圆”: 如果为“空”,则块应仅包含“形状” XML示例: 我尝试了这个XSD模式: 失败…xmllint抱怨: 我的测试。xsd:160:element-all:Schemas解析器错误:element'{http://www.w3.org/2001/XMLSchema}选项“:内容无效。预期为(注释?,(元素|组|选择|序列|

  • 我没有编写C++代码,因为我的首要任务是创建有效的xml和XSD。 xml: XSD: 为了验证,我转到:https://www.freeformatter.com/xml-validator-xsd.html 错误:s4s-att-invalid-value:元素“Element”中“type”的属性值无效。记录原因:cvc-datatype-valid.1.2.1:“xs:”不是“QName”

  • 我是XML验证的新手,我遇到了一个我不明白的问题。我使用Python库根据我使用MS XSD工具生成的XSD文件验证XML文件。在创建了许多工作正常的XSD模式后,我在最新的XSD中遇到了以下问题 原因:位置1处标记为“app1:displayname”的意外子级。需要标记mstns:displayname。 架构: 实例: premiere 路径:/manifest:mediaManifest/