2010-01-09 27 views
7

Đây có thể là một câu hỏi đơn giản đối với hầu hết các lập trình viên Perl, tôi chỉ sử dụng Perl trong hai tuần cho đến nay và rất không quen thuộc với các gói Perl.Tôi làm cách nào để xác thực XML bằng XSD trong Perl?

Tôi có một tập tin XSD đơn giản như sau:

<?xml version="1.0" ?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema"> 
    <xsd:element name="elementname"> 
     <xsd:complexType> 
      <xsd:sequence> 
       <xsd:element name="field1" type="xsd:integer" minOccurs="0" maxOccurs="1"/> 
       <xsd:element name="field2" type="xsd:string" minOccurs="0" maxOccurs="1"/>    
      </xsd:sequence> 
     </xsd:complexType> 
    </xsd:element> 
</xsd:schema> 

Tôi rất thích để xác nhận một tập tin XML với XSD trên để đảm bảo đây là một XML hợp lệ. Tôi nên sử dụng mô-đun Perl nào? Tôi thích một mô-đun có sẵn trên cả ActivePerl và Perl trên * nix. Sẽ rất hữu ích để đăng một số đoạn mã.

Cảm ơn

+0

Trùng lặp: "Có mô-đun Perl xác nhận hợp lệ XML đối với giản đồ không?" - http://stackoverflow.com/questions/322080/is-there-a-perl-module-that-validates-an-xml-against-a-schema – draegtun

Trả lời

4

Tôi nghĩ bạn cần XML::Validator::Schema từ CPAN. Đây là README, và cài đặt:

perl -MCPAN -e 'install XML::Validator::Schema' 
+0

@Brian - cảm ơn phản hồi nhanh của bạn, tôi không thể để tìm mô-đun này trên ActivePerl. Bất kỳ lựa chọn tốt trên ActivePerl? Tôi hy vọng sẽ tìm thấy một mô-đun có sẵn và chạy trên cả Windows và Linux. – John

+0

Nếu bạn phải sử dụng perl trên cửa sổ, tôi đề nghị bạn sử dụng dâu tây perl thay thế. ** http://strawberryperl.com/ ** Nó tốt hơn nhiều so với ActivePerl (khi nói đến gói bảo hiểm (và những thứ khác nữa)) Tôi cung cấp một CPAN thích hợp để cài đặt và biên dịch nhiều gói hơn. – Nifle

+0

Tôi không biết, tôi sợ. Tôi hy vọng ActivePerl sẽ hỗ trợ CPAN, nhưng có lẽ không. –

Các vấn đề liên quan