지금 시간이에서 작업, 심지어 다른 비슷한 질문에 saberworks에 의해 게시 this 튜토리얼과 함께, 나는 그것이 작동하지 않는 XML로 변환 .xsd
파일을 xml structures
으로 변환하십시오. 이후에 액세스하여 완료 할 수 있으며 libXML
또는 기타 xml-parser
을 통해 완료 할 수 있습니다.펄 그래서, 내가하려고</p> <p>... XSD가
링크 된 자습서를 살펴보면 saberworks가 손으로 최종 데이터 구조를 만드는 두 번째 단계를 쉽게 자동화 할 수 있습니까?
내가 어떻게 이해했는지, 그는 단지 "실마리", 어떤 종류의 가이드, XML이 어떻게 보일 것인가에 대한 결과물을 사용한다. 하지만 libXML
에 의해 (구문 분석 된) 전체 perl 구조체를 생성 할 수 있습니까?
이미 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 템플릿을 libXML에서 사용할 수있는 perl 데이터 구조로 변환하는 방법을 찾지 못했습니다. – Jonas93
질문을 편집하고 지금까지 시도한 것을 보여주십시오. 그렇게 작업 할 수 있습니다. – simbabque