#!/usr/bin/perl use warnings; use strict; use lib 'lib','t'; use TestTools; use XML::Compile::Schema; use XML::Compile::Tester; use Test::More tests => 14; my $schema = XML::Compile::Schema->new( <<__SCHEMA__ ); __SCHEMA__ ok(defined $schema); # # Direct schema access # my $dirr = $schema->compile(READER => "{$SchemaNS}int"); ok(defined $dirr, 'read an int'); my $val = $dirr->('40'); cmp_ok($val, '==', 40); my $dirw = $schema->compile(WRITER => "{$SchemaNS}int"); my $doc = XML::LibXML->createDocument('1.0', 'UTF-8'); ok(defined $dirw, 'write an int'); my $node = $dirw->($doc, '41'); ok(ref $node, 'created XML node'); isa_ok($node, 'XML::LibXML::Text'); compare_xml($node, '41'); # # simple element type # my $read_t1 = $schema->compile ( READER => "{$TestNS}test1" , check_values => 1 ); ok(defined $read_t1, "reader element test1"); cmp_ok(ref($read_t1), 'eq', 'CODE'); my $t1 = $read_t1->( <<__XML ); 42 __XML cmp_ok($t1, '==', 42); # # the simpleType, less simple type # my $read_t2 = $schema->compile ( READER => "{$TestNS}test2" , check_values => 1 ); ok(defined $read_t2, "reader simpleType test2"); cmp_ok(ref($read_t2), 'eq', 'CODE'); my $hash = $read_t2->( <<__XML ); 42 __XML # # The not so complex complexType # my $read_t3 = $schema->compile ( READER => "{$TestNS}test3" , check_values => 1 ); ok(defined $read_t3, "reader complexType test3"); cmp_ok(ref($read_t3), 'eq', 'CODE'); my $hash2 = $read_t3->( <<__XML ); 13 42 __XML