2

新しい gml Feature スキーマを設定しようとしていますが、名前空間で何かを誤解していると思います。私のスキーマは次のとおりです。

<xs:schema targetNamespace="http://localhost/dar" xmlns:gml="http://www.opengis.net/gml" xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns="http://localhost/dar">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/gml.xsd" />
<xs:element name="Region" substitutionGroup="gml:_Feature">
    <xs:complexType>
        <xs:complexContent>
            <xs:extension base="gml:AbstractFeatureType">
                <xs:sequence>
                    <xs:element name="regionId" type="xs:string" />
                    <xs:element name="regionName" type="xs:string" />
                    <xs:element ref="gml:Polygon" />
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
</xs:element>

そして、私のテストxmlドキュメントは次のとおりです。

<wfs:FeatureCollection xmlns="http://localhost/dar" xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://localhost/dar http://localhost/dar/DariusFeatures.xsd
http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<gml:boundedBy>
    <gml:Envelope srsName="http://www.opengis.net/gml/srs/epsg.xml#63266405">
        <gml:lowerCorner>10 10</gml:lowerCorner>
        <gml:upperCorner>20 20</gml:upperCorner>
    </gml:Envelope>
</gml:boundedBy>
<gml:featureMember>
    <Region>
        <regionId>region432762</regionId>
        <regionName>Southern Block</regionName>
        <gml:Polygon>
            <gml:exterior>
                <gml:LinearRing>
                    <gml:coordinates>38.324,21.754 38.424,21.754 38.424,21.854 38.324,21.854 38.324,21.754 </gml:coordinates>
                </gml:LinearRing>
            </gml:exterior>
        </gml:Polygon>
    </Region>
</gml:featureMember>

スキーマはEclipseで正常に検証されるようになりましたが、xmlドキュメントを検証しようとすると、スキーマファイルのターゲットネームスペースが「null」であることがEclipseから通知されますか?

ご覧のとおり、スキーマを にデプロイしましたlocalhost。私がどこを台無しにしたか、誰かが見ることができますか?

4

3 に答える 3

1

次の行を xml スキーマに追加してみてください。

<xs:import namespace="http://www.opengis.net/wfs" schemaLocation="http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" />

その行 (およびイアンが言ったように xs:schema の elementFormDefault="qualified") を考えると、xml は検証する必要があります。

于 2012-11-15T14:46:37.353 に答える
0

elementFormDefault="qualified"短いバージョン: 要素に追加する必要がありますxs:schema

より長いバージョン: デフォルトでは、スキーマの最上位の要素宣言のみがターゲット名前空間に入り、複合型内にネストされた要素は名前空間に宣言されません。したがって、現在記述されているスキーマは名前空間に含まれていないと想定regionNameregionIdていますが、XML ドキュメントにはhttp://localhost/dar名前空間に含まれています。これelementFormDefaultにより、ネストされた「ローカル」要素もターゲット名前空間を引き継ぐようになります。

于 2012-11-15T09:33:52.177 に答える
0

まあ、それから数日が経ちましたが、検証の問題はまだ謎のままです. 回避策として、OGC の Web フィーチャー サービスの新しいバージョンが http://schemas.opengis.net/wfs/2.0/wfs.xsdにあることを発見しました。 これは、gml 3.1.1 の代わりに gml 3.2 を使用します。

この新しい形式を使用するために小さな変更を加えた後は、すべて問題ありません。

于 2012-11-20T08:13:47.560 に答える