Ошибка проверки изображений-sitemap с использованием кода Java - PullRequest
0 голосов
/ 17 мая 2019

У меня есть файл XML Sitemap для изображений, и я пытаюсь проверить его по схеме, используя код Java:

URL schemaFile = new URL("https://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd");

Source xmlFile = new StreamSource(new File("web.xml"));
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

Schema schema = schemaFactory.newSchema(schemaFile);

Validator validator = schema.newValidator();
validator.validate(xmlFile);

и XML:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
    <loc>https://company.com/abc/is/images/A/AA/AAA/AAAA/A/product-name</loc>
    <image:image>
        <image:loc>https://company.com/abc/is/image//images/A/AA/AAA/AAAA</image:loc>
    </image:image>
</url>


Я получаю ошибку проверки Java:

line: 2
column: 123
message: Cannot find the declaration of element 'urlset'.

1 Ответ

0 голосов
/ 22 мая 2019

Да, в XML элемент urlset не имеет префикса, поэтому считается, что он находится в пространстве имен по умолчанию: http://www.sitemaps.org/schemas/sitemap/0.9.Однако в коде Java используется неверная схема (другая версия / пространство имен): https://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd.

Так что либо измените пространство имен urlset элемента XML (возможно, с префиксом image?)или загрузите другую схему (v0.9) в свой код Java.

...