2017-09-15 64 views
0

我是XML新手。這是一項家庭作業。我已盡我所能,但無法獲取實例文檔進行驗證。我不斷收到錯誤XML驗證 - 命名空間問題

「找不到元素'網站'的聲明。」

我想我可能已經錯誤地聲明瞭某些名稱空間,或者schemaLocations。任何人都可以將我指向正確的方向嗎?

的作業步驟:

  • 在sites.xml文件,添加命名空間聲明根網站 元素,對XML Schema的 命名空間相關聯,與URI的XS前綴。爲文件指定默認名稱空間ht tp://example.com/weekendfunsnacks/sites。指定 sites.xsd作爲默認名稱空間的模式位置。

  • 在sites.xsd文件中,在根元素,指定目標命名空間 如HT TP://example.com/weekendfunsnacks/sites,然後 前綴cc,其中所述目標相關聯命名空間。將前綴sm與 命名空間ht tp://www.sitemaps.org/schemas/sitemap/0.9相關聯。指定 元素默認爲合格,並且該屬性默認爲不合格 。

  • 添加代碼導入爲 HT TP架構:從 位置HT TP //www.sitemaps.org/schemas/sitemap/0.9命名空間://www.sitemaps.org/模式/地圖/ 0.9/sitemap.xsd。 //www.sitemaps.org/schemas/sitemap/0.9名稱空間:

  • 緊接總頁數元素的聲明之後,從 HT TP添加 參考網址設定元件。

實例文檔:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
    <!-- 
     Filename:   sites.xml 
     Supporting Files: sites.xsd 
    --> 
    <sites xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://example.com/weekendfunsnacks/sites" xs:noNamespaceSchemaLocation="sites.xsd"> 
     <site> 
      <name>Weekend Fun Snacks</name> 
      <totalPages>127</totalPages> 
      <urlset xmlns:sm="http://www.sitemaps.org/schemas/sitemap/0.9" sm:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> 
      <url> 
       <loc>http://example.com/weekendfunsnacks/?cat=58</loc> 
      </url> 
      <url> 
       <loc>http://example.com/weekendfunsnacks/?cat=2</loc> 
       <lastmod>2017-12-29T06:03:34+00:00</lastmod> 
      </url> 
      <url> 
       <loc>http://example.com/weekendfunsnacks/?cat=15</loc> 
       <lastmod>2017-12-29T05:24:04+00:00</lastmod> 
      </url> 
      <url> 
       <loc>http://example.com/weekendfunsnacks/?cat=93</loc> 
      </url> 
      <url> 
       <loc>http://example.com/weekendfunsnacks/?cat=55</loc> 
      </url> 
      </urlset> 
     </site> 
     <site> 
      <name>Paleo Snacks</name> 
      <totalPages>52</totalPages> 
      <urlset xmlns:sm="http://www.sitemaps.org/schemas/sitemap/0.9" sm:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> 
      <url> 
       <loc>http://example.com/primalsnacks/?cat=6</loc> 
      </url> 
      <url> 
       <loc>http://example.com/primalsnacks/?cat=18</loc> 
       <lastmod>2017-09-19T17:13:19+00:00</lastmod> 
      </url> 
      <url> 
       <loc>http://example.com/primalsnacks/?cat=54</loc> 
       <lastmod>2017-09-19T15:24:01+00:00</lastmod> 
      </url> 
      <url> 
       <loc>http://example.com/primalsnacks/?cat=52</loc> 
       <lastmod>2017-09-28T21:03:11+00:00</lastmod> 
      </url> 
      <url> 
       <loc>http://example.com/primalsnacks/?cat=201</loc> 
       <lastmod>2017-10-06T07:03:26+00:00</lastmod> 
      </url> 
      <url> 
       <loc>http://example.com/primalsnacks/?cat=11</loc> 
      </url> 
      </urlset> 
     </site> 
     <site> 
      <name>Veg Snacks</name> 
      <totalPages>17</totalPages> 
      <urlset xmlns:sm="http://www.sitemaps.org/schemas/sitemap/0.9" sm:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> 
      <url> 
       <loc>http://example.com/vegsnacks/?cat=102</loc> 
      </url> 
      <url> 
       <loc>http://example.com/vegsnacks/?cat=23</loc> 
      </url> 
      <url> 
       <loc>http://example.com/vegsnacks/?cat=1</loc> 
      </url> 
      <url> 
       <loc>http://example.com/vegsnacks/?cat=55</loc> 
       <lastmod>2017-06-12T08:05:32+00:00</lastmod> 
      </url> 
      <url> 
       <loc>http://example.com/vegsnacks/?cat=201</loc> 
      </url> 
      <url> 
       <loc>http://example.com/vegsnacks/?cat=87</loc> 
      </url> 
      </urlset> 
     </site> 
    </sites> 

的文件名爲.xsd:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 

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

回答

0

的命名空間不匹配。該模式用於命名空間cc:http://example.com/weekendfunsnacks/sites,但實例文檔位於命名空間http://example.com/weekendfunsnacks/sites