Работая над этим в течение нескольких часов в настоящее время, и даже с this учебником, размещенного saberworks в другом таком же вопросе, я не заставить его работать ...Perl преобразование XSD в XML
Итак, я пытаюсь конвертировать .xsd
файлов в xml structures
, которые могут быть доступны и завершены после libXML
или любым другим xml-parser
.
Если вы посмотрите на связанный учебник, можно ли легко автоматизировать второй шаг, когда saberworks создает конечную структуру данных вручную?
Как я понял, он просто использует вывод, чтобы получить «ключ», какой-то путеводитель, как должен выглядеть xml. Но возможно ли создать целую структуру perl, которая может быть использована (проанализирована) на libXML
?
И если у нас уже есть структура xml, как работает XML::Compile/XML::LibXML
с дополнительными элементами? Если я не помещаю никаких значений или элементов в необязательный элемент, будет ли он отображаться в окончательном выводе xml? В случае, если это так, есть ли способ предотвратить это?
use warnings;
use strict;
use Data::Dumper;
use XML::Compile::Schema;
use XML::LibXML;
my $xsd = 'schema.xsd';
my $schema = XML::Compile::Schema->new($xsd);
my $xml_temp = $schema -> template('PERL', 'addresses');
# ***convert $xml_temp to "real" perl hash structure***
my $doc = XML::LibXML::Document->new('1.0', 'UTF-8');
my $write = $schema -> compile(WRITER => 'addresses');
my $xml = $write -> ($doc, $xml_temp);
$doc -> setDocumentElement($xml);
print $doc -> toString(1);
Вы протестировали его? – simbabque
конечно, но я не могу найти способ преобразования шаблона perl в perl datastructure, который может использоваться libXML – Jonas93
Пожалуйста, отредактируйте свой вопрос и покажите, что вы пробовали до сих пор, поэтому мы можем работать над этим. – simbabque