2010-01-09 3 views
7

Это может быть простой вопрос для большинства программистов на Perl, я использовал Perl только две недели и очень незнакомы с пакетами Perl.Как проверить XML с помощью XSD в Perl?

У меня есть простой файл XSD, как показано ниже:

<?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> 

Я хотел бы, чтобы проверить файл XML с выше XSD, чтобы обеспечить это правильный XML. Какой модуль Perl я должен использовать? Я предпочитаю модуль, доступный как на ActivePerl, так и на Perl на * nix. Было бы очень полезно опубликовать некоторые фрагменты кода.

Благодаря

+0

Duplicate: «Есть ли модуль Perl, который проверяет XML на схему?» - http://stackoverflow.com/questions/322080/is-there-a-perl-module-that-validates-an-xml-against-a-schema – draegtun

ответ

4

Я думаю, что вам нужно XML::Validator::Schema из CPAN. Вот README и установить:

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

@Brian - спасибо за ваш быстрый ответ, я не могу чтобы найти этот модуль на ActivePerl. Любая хорошая альтернатива ActivePerl? Я надеюсь найти модуль, который доступен и работает как на Windows, так и на Linux. – John

+0

Если вам нужно использовать perl на окнах, я предлагаю вместо этого использовать клубнику perl. ** http://strawberryperl.com/ ** Это намного лучше, чем ActivePerl (когда дело доходит до покрытия пакетов (и других вещей)). Я поставляет надлежащий CPAN chell для установки и компиляции гораздо большего количества пакетов. – Nifle

+0

Я не знаю, боюсь. Я бы надеюсь, что ActivePerl будет поддерживать CPAN, но, возможно, нет. –