2012-03-28 10 views
0

私は非常に単純な問題を抱えています。これは、私の投稿の下に表示されている特定のXMLスキーマファイルに関連しています。私は1週間で書かなければならない試験からのものであり、スキーマについての正式な質問です。なぜXMLスキーマが整形式でないのか分かりませんか?

エラーは既に黄色でマークされており、名前空間に関するヒントが得られましたが、最終的に問題の解決方法はわかりません。私の最初の考えは、タイプ定義Type="Book"Type="urn:Book"のようなプレフィックスが必要ですが、私は全くわかりません。

この場合、知識の不足を解決するのに役立つアドバイスをいただき、ありがとうございます。あなたはBooktargetNamespace属性を使用してurn:schemaS名前空間にあることを指定しているためである

enter image description here

答えて

1

。これを行うには、urn:schemaSの名前の接頭辞を定義し、type="nsPrefix:Book"の修飾名を定義する必要があります。

Read this tutorial

+0

非常に速い答えをありがとう、それは私を大いに助けました、そして、私は名前空間の機能について、特にこの場合には考えがあると思います:) – Matthias

+0

@Matthiasは正解としてこれを受け入れます –

0

という名前を宣言するとcomplexTypeその名前がターゲット名前空間に関連付けられている資格1、である - ので、あなたが宣言されていることurn:schema5名前空間の種類Bookです。

型を参照するときに修飾名を指定する必要があり、スキーマはデフォルトではターゲット名前空間にはならず、通常のXML名前空間宣言が使用されます。あなたには何もないので、存在しないデフォルトの名前空間( '')にタイプBookを使用しようとしています。

あなたが名前空間宣言を追加するかがあります:あなたがデフォルトとしてターゲット名前空間を宣言し

<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:schema5="urn:schema5" 
    targetNamespace="urn:schema5" 
    elementFormDefault="qualified"> 

をしてから

<xs:element name="book" type="schema5:Book" maxOccurs="3"/> 

か(私の好ましい選択)それを使用する:

<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns="urn:schema5" 
    targetNamespace="urn:schema5" 
    elementFormDefault="qualified"> 

となり、何もする必要はありません。

関連する問題