Xsd 如何修复此XML模式?

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

我试图在我的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.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文件来完成的。