BEGIN { plan
tests
=> 1 }
my
$handler
= TestH->new();
my
$parser
= XML::SAX::ExpatXS->new(
Handler
=>
$handler
);
my
$xml
=
<<_xml_;
<!DOCTYPE html [
<!ELEMENT foo (boo|hoo)* >
<!ELEMENT boo (#PCDATA)* >
<!ELEMENT hoo EMPTY>
]>
<foo><boo>text</boo><hoo/></foo>
_xml_
$parser
->parse_string(
$xml
);
ok(
$handler
->{data} eq
'_sdtd|html_ed|foo:(boo|hoo)*_ed|boo:(#PCDATA)*_ed|hoo:EMPTY_edtd'
);
sub
new {
bless
{
data
=>
''
},
shift
}
sub
start_dtd {
my
(
$self
,
$dtd
) =
@_
;
$self
->{data} .=
'_sdtd|'
.
$dtd
->{Name};
}
sub
end_dtd {
my
(
$self
,
$dtd
) =
@_
;
$self
->{data} .=
'_edtd'
;
}
sub
element_decl {
my
(
$self
,
$ed
) =
@_
;
$self
->{data} .=
"_ed|$ed->{Name}:$ed->{Model}"
;
}