2016-12-05 14 views
1

こんにちは私はまだまだXMLには新しく、この問題を見回している間に私の答えは私の問題にはあまり適合しませんでした。このxmlを検証すると、「要素 'sites'の宣言が見つかりません」というエラーが表示されます。私は正確に何が起こっているのか分からないようで、誰かが助けてくれるのであれば私は興味がありました。任意の助けXMLは要素の宣言を見つけることができません

<sites xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsi="http://example.com/weekendfunsnacks/site" 
     xsi:schemaLocation="http://example.com/weekendfunsnacks/site sites.xsd"> 

    <xs:import namespace="http://sitemaps.org/schemas/sitemap/0.9" 
     schemaLocation="http://sitemaps.org/schemas/sitemap/0.9sitemap.xsd" /> 

XSD

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:cc="http://example.com/weekendfunsnacks/sites" 
xmlns:sm="http://www.sitemaps.org/schemas/sitemap/0.9" 
targetNamespace="http://example.com/weekendfunsnacks/sites" 
elementFormDefault="qualified" attributeFormDefault="unqualified"> 

<xs:element name="sites"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="site" maxOccurs="unbounded" minOccurs="0"> 
      <xs:complexType> 
       <xs:sequence> 
       <xs:element type="xs:string" name="name"/> 
       <xs:element type="xs:byte" name="totalPages"/> 
       </xs:sequence> 
       </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 

おかげ以下

XML!

答えて

0

あなたは問題のカップルている:スキーマがelementFormDefault="qualified"ことを宣言しているため

  • sitesが認識されない - これは、スキーマの要素は、スキーマのターゲット名前空間にあることを意味します。 <sites>は、グローバル名前空間の要素を宣言します。<sites>および<prefix:sites>は、の異なる要素です。名前空間接頭辞を作成し、これを使用してインスタンス文書の<sites>要素を修飾し、このエラーを修正します。
  • <sites>は閉じていません。これは、完全なドキュメントであると仮定すると、整形式のXMLではありません。あなたのフォローアップのコメントに答えて

:接頭xshttp://www.w3.org/2001/XMLSchema-instanceの接頭辞として宣言されているため <xs:sites>は、正しくありません。 <sites>はこの名前空間にはありません。それはhttp://example.com/weekendfunsnacks/sitesです。したがって、新しい名前空間接頭辞を追加するには、sites要素に属性xmlns:prefix="http://example.com/weekendfunsnacks/sites"を追加し、sites要素にという接頭辞をという接頭辞を付けて使用します。

+0

よろしくお願いいたします。コードに関していくつか修正しました。私は ''にプレフィックスを付けました。私はプレフィックスを与えたときに、 "xs:"という接頭辞は "xs:"という接頭辞を付けられていませんでしたか? sites.xmlファイルで、xs接頭辞をXMLスキーマの名前空間のURIに関連付けて、ルートサイト要素に名前空間宣言を追加します。 "そうするのは間違っているでしょうか? 申し訳ありません、この情報が追加されたか、無関係な質問 –

関連する問題