Итак, я пытаюсь сделать этот шаг для моего кода: В файле sites.xml добавьте объявление пространства имен в элемент корневых сайтов, связав префикс xs с URI для XMLСхема пространства имен.Укажите пространство имен по умолчанию http://example.com/weekendfunsnacks/sites для файла.Укажите sites.xsd в качестве расположения схемы для пространства имен по умолчанию.Но продолжайте получать эту ошибку cvc-elt.1: Не удается найти объявление элемента 'sites'.Я почти уверен, что мой код правильный, но вы можете увидеть, если что-то не так.
Итак, я пытаюсь сделать этот шаг для моего кода:
В файле sites.xml добавьте объявление пространства имен в элемент корневых сайтов, связав префикс xs с URI для XMLСхема пространства имен.Укажите пространство имен по умолчанию http://example.com/weekendfunsnacks/sites для файла.Укажите sites.xsd в качестве расположения схемы для пространства имен по умолчанию.Но продолжайте получать эту ошибку cvc-elt.1: Не удается найти объявление элемента 'sites'.Я почти уверен, что мой код правильный, но вы можете увидеть, если что-то не так.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <sites xmlns:xs="http://www.w3.org/2001/XMLSchema" xs:schemaLocation="http://example.com/weekendfunsnacks/sites sites.xsd" xmlns ="http://example.com/weekendfunsnacks/sites"> <site> <name>Weekend Fun Snacks</name> <totalPages>127</totalPages> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <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="http://www.sitemaps.org/schemas/sitemap/0.9"> <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="http://www.sitemaps.org/schemas/sitemap/0.9"> <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 я получаю только эту ошибку "Префикс" cc "для атрибута"cc: targetNamespace "связан с типом элемента" xs: schema "is not bound."но я также немного сбит с толку насчет шага, и мне было интересно, не могли бы вы уточнить, что они просят об этом шаге: 5. В файле sites.xsd в корневом элементе укажите целевое пространство имен как http://example.com/weekendfunsnacks/sites, и затем связать префикс cc с целевым пространством имен.Свяжите префикс sm с пространством имен http://www.sitemaps.org/schemas/sitemap/0.9.Specify, что элементы квалифицированы по умолчанию, и что атрибуты не определены по умолчанию.я не уверен, к какому префиксу они относятся, и в xsd нет никаких атрибутов, которые можно было бы квалифицировать.
также в моем xsd я получаю только эту ошибку "Префикс" cc "для атрибута"cc: targetNamespace "связан с типом элемента" xs: schema "is not bound."но я также немного сбит с толку насчет шага, и мне было интересно, не могли бы вы уточнить, что они просят об этом шаге:
5. В файле sites.xsd в корневом элементе укажите целевое пространство имен как http://example.com/weekendfunsnacks/sites, и затем связать префикс cc с целевым пространством имен.Свяжите префикс sm с пространством имен http://www.sitemaps.org/schemas/sitemap/0.9.Specify, что элементы квалифицированы по умолчанию, и что атрибуты не определены по умолчанию.я не уверен, к какому префиксу они относятся, и в xsd нет никаких атрибутов, которые можно было бы квалифицировать.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" cc:targetNamespace="http://example.com/weekendfunsnacks/sites" sm:xmlns ="http://www.sitemaps.org/schemas/sitemap/0.9"> <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" ref="sitemap"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Я мог бы заставить ваш пример работать (здесь предполагается, что sites.xsd находится в том же каталоге.), Изменив верхнюю часть вашего XML-файла на
sites.xsd
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <sites xmlns:xs="http://www.w3.org/2001/XMLSchema" xs:schemaLocation="file://sites.xsd" xmlns ="http://example.com/weekendfunsnacks/sites">
Здесь xs:schemaLocation указывает путь к XSD, а xmlns: задает пространство имен по умолчанию. В XSD я удалил (неправильные) пространства имен sm: и cc: из атрибутов xs:schema.
xs:schemaLocation
xmlns:
sm:
cc:
xs:schema
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/weekendfunsnacks/sites" xmlns ="http://www.sitemaps.org/schemas/sitemap/0.9">
См. здесь для объяснения этих атрибутов. Итак, применительно к вашему примеру targetNamespace="http://example.com/weekendfunsnacks/sites" указывает, что элементы, определенные этой схемой, происходят из того же пространства имен, что и элементы в вашем XML.
targetNamespace="http://example.com/weekendfunsnacks/sites"
Применяя эти исправления, XML проверяет.