xml – 错误:检测到“sites”没有名称空间,但没有目标名称空间
我一直在研究这种“高级”模式,感冒了几天,我无法弄清楚为什么它一直告诉我没有找到“网站”.我重新阅读了这一章,甚至创建了一个实验的副本(之前有效),我不明白.我正在尝试导入和组合模式,我不知道如何让它正常工作……以下是错误:
这是XML和架构: <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cc="http://example.com/weekendfunsnacks/sites/ns" targetNamespace="http://example.com/weekendfunsnacks/sites" xmlns:sm="http://www.sitemaps.org/schemas/sitemap/0.9/ns" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="http://www.sitemaps.org/schemas/sitemap/0.9" schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" /> <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:element ref="sites" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>? <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <sites xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xs="http://example.com/weekendfunsnacks/sites/ns" xsi:schemaLocation="http://example.com/weekendfunsnacks/sites/ns sites.xsd"> <site> <name>Weekend Fun Snacks</name> <totalPages>127</totalPages> <urlset xmlns:sm="http://www.sitemaps.org/schemas/sitemap/0.9/ns"> <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/ns"> <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/ns"> <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有一个targetNamespace,因此您的ref =“sites”必须引用该命名空间.
定义名称空间前缀,比如w:与目标名称空间相同,然后在引用中使用它:ref =“w:sites”: <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/weekendfunsnacks/sites" xmlns:w="http://example.com/weekendfunsnacks/sites" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="http://www.sitemaps.org/schemas/sitemap/0.9" schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" /> <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:element ref="w:sites" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |