当前位置: 首页 > 知识库问答 >
问题:

XML验证-名称空间问题

仲霍英
2023-03-14

我是XML新手。这是一个家庭作业。我已经尽了最大努力,但我无法让实例文档进行验证。我总是犯错误

“找不到元素'站点'的声明。

我想我可能错误地声明了一些名称空间或者schemaLocations。有人能给我指一下正确的方向吗?

作业步骤:

>

  • <块引用>

    在sites.xml文件中,向根站点元素添加命名空间声明,将xs前缀与XML Schema命名空间的URI相关联。为文件指定默认命名空间http://example.com/weekendfunsnacks/sites。将sites.xsd指定为默认命名空间的架构位置。

    在sites.xsd文件中,在根元素中,将目标命名空间指定为http://example.com/weekendfunsnacks/sites,然后将前缀cc与目标命名空间相关联。将前缀sm与命名空间ht相关联tp://www.sitemaps.org/schemas/sitemap/0.9.指定元素默认为限定,属性默认为不限定。

    添加代码以从位置ht-tp://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd导入ht-tp//www.sitemaps.org/sschemas/sitemap/0.9命名空间的模式。

    在totalPages元素声明之后,立即从ht-tp://www.sitemaps.org/schemas/sitemap/0.9名称空间添加对urlset元素的引用。

    实例文档:

    <?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>
    
  • 共有1个答案

    江烨伟
    2023-03-14

    命名空间不匹配。该模式用于命名空间< code > cc:http://example . com/weekendfun零食/站点,但实例文档位于命名空间< code > http://example . com/weekendfun零食/站点中

     类似资料:
    • 问题内容: 我想针对XSD架构验证XML文件。XML文件根元素没有任何名称空间或xsi详细信息。它没有属性,只是。 我已经尝试从http://www.ibm.com/developerworks/xml/library/x-javaxmlvalidapi.html尝试以下代码,但运气不佳 xml可以使用包含的名称空间标头等(通过xmlspy添加)很好地验证,但是我想可以不用手动编辑源文件就可以声明

    • 我是XML验证方面的新手,在调用adobe server生成PDF之前,我被要求对XML进行验证。我有以下内容,我们通过对象获取XML,然后调用。如果有任何元素为null或空以停止生成pdf,任何人都可以帮助我一步一步地验证XML吗

    • 我有一个XML文件,其结构如下: XSD模式: 和可视化的XSL文件(学生tylesheet.xsl): 我目前正在学习一门关于XML的短期课程,任务是在XML文件中构建给定的XSD模式和一些示例记录,然后最终使用XSLT将内容可视化为超文本标记语言。其中一项任务指出,我需要使用“urn:学生”作为结构的默认命名空间。然而,当我这样做的时候,我不会在最终的可视化中收到数据。当我从XML文件中删除“

    • 我对C++不是很熟悉,这是我第一次使用的不仅仅是名称空间std。下面的有什么区别? VS 在这两个之后,我现在似乎可以创建一个MyClass对象了。一种方式比另一种好吗?另外,如果我都不这样做,我还可以通过每次需要时在MyNamespace::MyClass之前附加MyClass来引用MyClass吗? 接下来,如果我使用第二个选项转发declare,我还需要吗?在我(不是很好)的理解中,在C++

    • 问题内容: 我正在从源头解析XML文档,并且它们使用自定义名称空间。 例如。当我使用SimpleXML进行解析时,mostix:名称空间元素均未显示或不可访问。可能是一个非常简单的解决方案,但是有什么想法吗? 问题答案: 通常,人们使用children()。

    • 本文向大家介绍xpath 示例XML(无名称空间),包括了xpath 示例XML(无名称空间)的使用技巧和注意事项,需要的朋友参考一下 示例 这是一些示例XML,可以针对这些XML编写示例XPath: