GML验证报错:元素OT_BUSP_A不符合预期,求技术解决方案
XML验证错误:OT_BUSP_A元素不符合预期的解决思路
错误核心
验证时抛出的错误:
ERROR:SCHEMASV:SCHEMAV_ELEMENT_CONTENT: Element '{urn:gugik:specyfikacje:gmlas:bazaDanychObiektowTopograficznych10k:1.0}OT_BUSP_A': This element is not expected. Expected is one of ( {http://www.opengis.net/gml/3.2}AbstractFeature, {http://www.opengis.net/gml/3.2}DynamicFeature, {http://www.opengis.net/gml/3.2}DynamicFeatureCollection, {http://www.opengis.net/gml/3.2}MultiPointCoverage, {http://www.opengis.net/gml/3.2}MultiCurveCoverage, {http://www.opengis.net/gml/3.2}MultiSurfaceCoverage, {http://www.opengis.net/gml/3.2}MultiSolidCoverage, {http://www.opengis.net/gml/3.2}GridCoverage, {http://www.opengis.net/gml/3.2}RectifiedGridCoverage, {http://www.opengis.net/gml/3.2}Observation )
本质是:gml:FeatureCollection的内容模型只接受GML标准定义的特征类元素,而你的OT_BUSP_A直接作为其子元素,不符合结构要求,和前缀本身无关。
具体排查与修复步骤
1. 修正XML的嵌套结构
GML的FeatureCollection要求自定义特征必须放在gml:featureMember或gml:featureMembers容器内,而非直接作为子元素。调整后的XML结构应为:
<gml:FeatureCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mz="urn:gugik:specyfikacje:gmlas:mapaZasadnicza:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:bt="urn:gugik:specyfikacje:gmlas:modelPodstawowy:1.0" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:ot="urn:gugik:specyfikacje:gmlas:bazaDanychObiektowTopograficznych10k:1.0" gml:id="GUGiK_OT_BUSP_A" xsi:schemaLocation="urn:gugik:specyfikacje:gmlas:bazaDanychObiektowTopograficznych10k:1.0 ../XSD/OT_BDOT10k_BDOO.xsd"> <gml:featureMember> <ot:OT_BUSP_A> <!-- 此处添加OT_BUSP_A的具体内容 --> </ot:OT_BUSP_A> </gml:featureMember> </gml:FeatureCollection>
2. 确认XSD中OT_BUSP_A的类型定义
检查OT_BDOT10k_BDOO.xsd(或其包含的文件)中,OT_BUSP_A是否正确继承自GML的AbstractFeatureType,示例定义应为:
<element name="OT_BUSP_A" type="ot:OT_BUSP_AType"/> <complexType name="OT_BUSP_AType"> <complexContent> <extension base="gml:AbstractFeatureType"> <!-- 自定义属性、元素的定义 --> </extension> </complexContent> </complexType>
如果没有继承gml:AbstractFeatureType,验证器会将其识别为非预期元素,因为FeatureCollection只接受GML特征类型的实例。
3. 检查XSD的完整性
你提供的XSD片段不完整,需确认:
OT_BDOT10k_BDOO.xsd中是否包含OT_BUSP_A的元素定义- 所有XSD文件的引用路径是否正确(比如
BT_ModelPodstawowy.xsd等本地文件的相对路径是否和XML所在位置匹配)
误区说明
XML中的前缀声明(xmlns:ot、xmlns:gml)是正确的,和XSD中的命名空间完全匹配,前缀本身不是问题。错误的核心是元素的嵌套位置不符合GMLFeatureCollection的内容规范,以及自定义特征是否正确继承GML的抽象特征类型。
内容的提问来源于stack exchange,提问作者Karol Śpila
相关产品推荐
相关产品推荐

