2013-11-27 1 views
1
내가

유효성 검증 XML :: LibXML

my $schema = XML::LibXML::Schema->new(location => $xsd); 
my $parser = XML::LibXML->new; 
my $doc = $parser->parse_file($xml); 
eval { $schema->validate($doc) }; 
if (my $ex = [email protected]) { 
print "error" 
}  
else { 
    print "Schema validated ok"; 
} 

내 스키마가 내가이 줄에이 경고/오류, 확인과 검증도하는 다음 코드를 사용하여 XSD에 대해 다음 XML을 시도하고

HTTP 오류 : XSD를 언급 할 파일 또는 디렉토리

가치가 내 로컬 책상 에없고 오류가이 라인에 방출

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

6,하고 $ XSD 내 xml 파일 C의 위치가 아래

내 스키마 형성 최초의 개요입니다 xml.xsd \ 사용자 \ 생체은 \ 검증이 \

?xml version="1.0"?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns="http://ce.omb.edu/schema/34" 
    xmlns:vivo="http://ce.omb.edu/schema/vivo/0.4" 
    targetNamespace="http://ce.omb.edu/schema/subversion/vivi/2.0" 
    elementFormDefault="qualified" attributeFormDefault="unqualified" 
    version="2.0"> 
    <xsd:import namespace="http://ce.omb.edu/schema/vivo/0.4" schemaLocation="c:/users/vivo/desktop/validate/vivo.xsd"/> 

누군가가 수 왜 내가이 경고/오류 메시지를 받습니까? 퍼팅

+0

코드의 어떤 줄에서 오류가 발생하고 있습니까? – ThisSuitIsBlackNot

+0

이 줄은 : my $ schema = XML :: LibXML :: Schema-> new (위치 => $ xsd); – smith

+0

그리고'$ xsd'의 값은 무엇입니까? (의견에 게시하는 대신 이러한 정보를 질문으로 편집하십시오) – ThisSuitIsBlackNot

답변

0

보십시오 : 당신의 my $schema 줄 앞에

die "$xsd is not a file" unless -f $xsd; 

다시 실행하고 말하는 참조하십시오. 위의 의견을 바탕으로 찾고있는 곳을 알려줍니다. 파일 이름이 모두 잘못되었거나 $xsd이 절대 경로가 아니며 스크립트의 관점에서 현재 작업중인 디렉토리가 생각하는 것과 다릅니다.

그런 경우 먼저 수정하려면 무엇을 할 수 있는지 보려면 http://perldoc.perl.org/Cwd.html을 살펴보십시오.