【问题标题】:Element or attribute do not match QName production元素或属性与 QName 生产不匹配
【发布时间】:2011-01-31 15:28:33
【问题描述】:

我有一个使用 XML 编辑器“扁平化”的架构。在我展平它之后,我得到一个验证错误。我能做些什么来解决它?

错误信息:

F [Xerces] 元素或属性不 匹配 QName 生产: QName::=(NCName':')?NCName.

代码:

<xs:import namespace="http://www.opengis.net/gml"
    schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/gml.xsd"
    xmlns:="http://www.opengis.net/gml/3.1.1" />
<xs:annotation xmlns:="http://www.opengis.net/sps/1.0">
    <xs:documentation>
        <copyright>                 SPS is an OGC Standard.                 Copyright (c)
            2007,2010 Open Geospatial Consortium, Inc. All Rights Reserved.                 To
            obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
        </copyright>
    </xs:documentation>
</xs:annotation>

这是一个可能更好地说明我的错误的屏幕截图:

编辑:

以某种方式删除冒号。究竟是什么 这种“扁平化”应该做什么?

xsd 的扁平化采用带有大量包含的xsd 并将其全部放入一个文件中(不包含任何包含)。

【问题讨论】:

  • 以某种方式删除冒号。这种“扁平化”究竟应该做什么?
  • 删除冒号对我不起作用,但请参阅我对扁平化的编辑。

标签: xml soap xsd xml-validation ogc


【解决方案1】:

xmlns:= 是无效语法。冒号是多余的或冒号后的命名空间前缀丢失。正确的语法是 xmlns="http://some.uri"xmlns:something="http://some.uri"

请注意,您有 2 个不需要的冒号:第一个冒号位于第 1002 行(红色箭头指向的位置),第二个位于第 1003 行。这暗示可能存在更多。

“QName”指的是“限定名称”,“NCName”指的是“非殖民化名称”。非殖民名称是不包含冒号字符 (:) 的 XML 名称。限定名称是一个非殖民化名称,或者是两个以冒号分隔的非殖民化名称的组合。例如“abc:defgh”。冒号之前的部分称为命名空间前缀,冒号之后的部分称为本地名称。如果限定名称具有命名空间前缀,则该前缀必须绑定到具有前缀命名空间声明的命名空间 URI,例如 xmlns:abc="http://some.uri"

【讨论】:

  • 我猜架构的扁平化会搞砸一切,因为如果我验证所有包含的文件,它会很好地验证,但是在扁平化之后,它会出现这些错误。我尝试删除第 1002 行的冒号,然后它在第 1003 行给了我错误。当我删除 1003 上的冒号时,它给了我更多(正如你所说的那样)。去掉最后一个冒号后,会出现很多验证错误。
【解决方案2】:

如果它对其他人有帮助,我会收到相同的错误消息,并意识到导致它的原因是命名空间 URI 中的冒号,即“http://whatever”。我一直将命名空间 URI 直接连接到资源和属性,而不是将命名空间注册为符号,因此资源或属性可能看起来像“http://hl7.org/fhir/:Observation”,它当然有两个冒号,因此不遵循“ QName::=(NCName':')?NCName" 生产格式。

我首先通过模型注册命名空间来修复它:

model.setNsPrefix("fhir","http://hl7.org/fhir/");

然后在我的资源和属性中添加命名空间:

Resource root = model.getResource("fhir:Patient");
root.addProperty(model.createProperty("fhir:Patient.identifier"), patient.identifier);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    相关资源
    最近更新 更多