导入仅使用<schema>定义的XSD,而不是</schema>

时间:2014-02-19 16:29:33

标签: xml import jaxb xsd schema

我正在尝试将部分GML几何定义导入新的模式文件中:

http://schemas.opengis.net/gml/3.1.1/base/geometryBasic0d1d.xsd

这就是我的定义:

<schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://my.namespace.com" 
        xmlns:my="http://my.namespace.com"
        xmlns:gml="http://www.opengis.net/gml"
        elementFormDefault="qualified">
    <import namespace="http://www.opengis.net/gml" schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/geometryBasic0d1d.xsd" />

当我通过JAXB编译器运行我的xsd时,我收到此错误:

[WARNING] schema_reference.4: Failed to read schema document 'http://schemas.opengis.net/gml/3.1.1/base/geometryBasic0d1d.xsd', because 
1) could not find the document; 
2) the document could not be read; 
3) the root element of the document is not <xsd:schema>.

该文档是可访问的并且可以读取,因此似乎#3是问题所在。查看引用的xsd文件,它的root不是“&lt; xsd:schema&gt;”而只是“&lt; schema&gt;”。我已经四处搜索但是找不到任何关于如何导入这样的XSD的具体信息。但我无法想象我是唯一一个这样做的人,所以我做错了什么?

1 个答案:

答案 0 :(得分:0)

我弄清楚问题是什么。我能够通过同一台机器上的浏览器访问导入的XSD文件,这让我相信JAXB编译器(XJC)可以做同样的事情。当我使用“-nv -verbose”选项运行XJC时,它报告连接超时,这让我意识到XJC本身无法看到导入的文件。原来有一个我忽略的代理设置。一旦我使用指定的代理服务器运行,导入就成功了。