Проверка XML с использованием LibXML

В настоящее время я использую Perl-модуль XML :: LibXML для проверки XML-файла по определенной XML-схеме. В настоящий момент, если мой XML-файл не сможет успешно пройти проверку на соответствие определенной XML-схеме, я получу список ошибок, сообщающих мне, например, что некоторые элементы не были ожидаемыми, а затем то, что ожидалось вместо этого. В моем XML-файле у меня будет много элементов с одинаковыми именами, но они могут быть вложены в различные места XML-файла.

У меня вопрос, есть ли в любом случае, я могу вывести местоположение XPath любых элементов, которые могут привести к ошибке при попытке выполнить проверку?

В настоящее время мой XML-файл довольно большой, и его трудно «отладить», когда проверка не пройдена, поскольку имя элемента, отображаемого в ошибке, может встречаться много раз в разных местах XML-файла.

Мой код ниже для использования LibXML для проверки XML-файла по схеме.

#!/usr/bin/perl
use strict;
use warnings;
use XML::LibXML;

my $schema_file = 'MySchema.xml';
my $document    = 'MyFile.xml';

my $schema = XML::LibXML::Schema->new(location => $schema_file);

my $parser = XML::LibXML->new;
my $doc    = $parser->parse_file($document);

eval { $schema->validate($doc) };
die $@ if $@;

print "$document validated successfully\n";

Ответы на вопрос(3)

Ваш ответ на вопрос