2011-01-31 21 views
2

XMLエディタを使用して「平坦化」したスキーマがあります。私はそれを平坦化した後、私は検証エラーを取得します。私はそれを修正するために何ができますか?要素または属性がQNameプロダクションと一致しません

エラーメッセージ:

F [Xerces] Element or attribute do not match QName production: QName::=(NCName':')?NCName.

コード: enter image description here

EDIT:

Remove the colon somehow. What exactly does this "flattening" supposed to do?

ここ
<xs:import namespace="http://www.opengis.net/gml" 
    schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/gml.xsd" 
    xmlns:="http://www.opengis.net/gml/3.1.1" /> 
<xs:annotation xmlns:="http://www.opengis.net/sps/1.0"> 
    <xs:documentation> 
     <copyright>     SPS is an OGC Standard.     Copyright (c) 
      2007,2010 Open Geospatial Consortium, Inc. All Rights Reserved.     To 
      obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . 
     </copyright> 
    </xs:documentation> 
</xs:annotation> 

がより良い私のエラーを説明するかもしれませんスクリーンショットです3210

xsdのフラット化では、たくさんのインクルードを持つxsdがひとつのファイルに含まれます(インクルードなし)。

+0

何とかコロンを削除します。この「平坦化」は正確に何をするのでしょうか? – biziclop

+0

コロンを削除しても機能しませんでしたが、平滑化に関する私の編集を参照してください。 – capdragon

答えて

11

xmlns:=は無効な構文です。コロンは余分です。コロンが見つからない場合は、名前空間接頭辞です。これがヒントを与えます(赤い矢印が指している)ライン1002上の最初の2つ目は、ライン1003上にある:正しい構文を使用すると、不必要なコロンを持ってxmlns="http://some.uri"xmlns:something="http://some.uri"

注だろうそれ以上のものがあるかもしれません。

「QName」は「修飾名」を意味し、「NCName」は「非修飾名」を意味します。非コロナ化された名前は、コロン文字(:)を含まないXML名です。修飾名は、コロンで区切られた、コロンで区切られていない名前または2つのコロンで区切られていない名前の組み合わせのいずれかです。たとえば、「abc:defgh」と入力します。コロンの前の部分は名前空間接頭辞と呼ばれ、コロンの後の部分はローカル名と呼ばれます。修飾された名前に名前空間接頭辞がある場合、接頭語を接頭辞付きの名前空間宣言を持つnamespace-URIにバインドする必要があります(例:xmlns:abc="http://some.uri")。

+0

私はすべてのインクルードされたファイルを検証すれば、それは妥当性を検証するが、それが平坦化された後、これらのエラーがあるので、スキーマの平坦化がすべてを狂わせると思います。私は1002行目のコロンを削除しようとしましたが、1003行目にエラーが表示されました.1003のものを削除すると、(あなたの言う通り)最後のコロンを削除すると、多くの検証エラーが表示されます。 – capdragon

関連する問題