Xsd 如何修复此XML模式?
我试图在我的XML模式上使用JAXB和IntelliJ Ultimate。这是IndoorGML网站上的模式。然而,IDE说它有问题Xsd 如何修复此XML模式?,xsd,Xsd,我试图在我的XML模式上使用JAXB和IntelliJ Ultimate。这是IndoorGML网站上的模式。然而,IDE说它有问题 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.opengis.net/indoorgml/1.0/core" xmlns:gml="http://www.opengis.ne
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.opengis.net/indoorgml/1.0/core"
xmlns:gml="http://www.opengis.net/gml/3.2" elementFormDefault="qualified" version="1.0.3">
<xs:annotation>
<xs:documentation>
IndoorGML is an OGC Standard. Copyright (c) 2014,2015,2016,2018 Open Geospatial Consortium. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
</xs:documentation>
</xs:annotation>
<!--
======================================================================
-->
<xs:import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
<!--
======================================================================
-->
<xs:element name="IndoorFeatures" type="IndoorFeaturesType" substitutionGroup="gml:AbstractFeature"/>
<!--
</xs:schema>
IndoorGML是OGC标准。版权所有(c)2014201520162018开放地理空间联盟。要获得其他使用权,请访问http://www.opengeospatial.org/legal/.
报告的错误在此引用上:substitutionGroup=“gml:AbstractFeature”
…正在尝试使“IndoorFeatures”成为在另一个命名空间中定义的替换组的成员
但是哪个名称空间?由前缀“gml”标识的命名空间。那是哪个名称空间?答案如下:xmlns:gml=”http://www.opengis.net/gml/3.2“
因此,我们需要找出名称空间被导入这个XSD的位置。这是在这里完成的:
<xs:import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
我认为现在错误的原因相当明显,但我将继续并完成答案。定义该命名空间的XSD在此处标识:
schemaLocation=”http://schemas.opengis.net/gml/3.2.1/gml.xsd“
显然,您的应用程序无法解析该URL,或者不允许访问该URL
您如何修复它?
如果您可以获得XSD的副本,那么您可以
a) 将其保存到本地文件夹,并将schemaLocation属性更改为指向本地文件夹,或
b) 定义将URL映射到文件夹位置的架构解析程序
不确定IntelliJ是否支持模式解析程序,但我希望它支持。谢谢!这解决了特殊xsd文件中的问题。但是,当我将丢失的模式放在本地文件夹中时,它再次表示缺少xsd文件。所以我又把它们放进了文件夹。这些文件还需要其他xsd文件,我把它们放在文件夹中。这些文件还需要其他xsd文件。这是一个永无止境的故事。我必须一直这样做,直到我的文件夹中有数百个xsd文件,还是有更好的方法来包含使用我的第一个原始xsd文件所需的所有xsd文件?如果架构是由100个单独的xsd构建的,那么IntelliJ将需要访问所有xsd文件。通常,这是通过下载创建模式的标准机构提供的zip文件来完成的。