NAME
DTA::CAB::Format::XmlNative - Datum parser|formatter: XML (native)
SYNOPSIS
##========================================================================
## Methods
$fmt
= DTA::CAB::Format::XmlNative->new(
%args
);
$obj
=
$fmt
->parseNode(
$nod
);
$doc
=
$fmt
->parseDocument();
$fmt
=
$fmt
->putDocument(
$doc
);
##========================================================================
## Utilities
$nod
=
$fmt
->xmlNode(
$thingy
,
$name
);
$val
= PACKAGE::_pushValue(\
%hash
,
$key
,
$val
);
##-- $hash{$key}=$val;
DESCRIPTION
DTA::CAB::Format::XmlNative is a DTA::CAB::Format subclass for document I/O using a native XML dialect. It inherits from DTA::CAB::Format::XmlCommon.
Methods
- new
-
$fmt
= CLASS_OR_OBJ->new(
%args
);
%$fmt, %args:
##-- input: inherited
xdoc
=>
$xdoc
,
##-- XML::LibXML::Document
xprs
=>
$xprs
,
##-- XML::LibXML parser
##
##-- input: new
parseXmlData
=>
$bool
,
##-- if specified and true, _xmldata key will be populated by parseNode() (default=unspecified:true)
##
##-- input+output: new
xml2key
=> \
%xml2key
,
##-- maps xml keys to internal keys
ignoreKeys
=> \
%key2undef
,
##-- keys to ignore for i/o
##
##-- output: new
arrayEltKeys
=> \
%akey2ekey
,
##-- maps array keys to element keys for output
arrayImplicitKeys
=> \
%akey2undef
,
##-- pseudo-hash of array keys NOT mapped to explicit elements
key2xml
=> \
%key2xml
,
##-- maps keys to XML-safe names
xml2key
=> \
%xml2key
,
##-- maps xml keys to internal keys
##
##-- output: inherited
encoding
=>
$inputEncoding
,
##-- default: UTF-8; applies to output only!
level
=>
$level
,
##-- output formatting level (default=0)
- parseDocument
-
$doc
=
$fmt
->parseDocument();
Parses buffered XML::LibXML::Document into a buffered DTA::CAB::Document.
- shortName
-
Returns "official" short name for this format, here just 'xml'.
- putDocument
-
$fmt
=
$fmt
->putDocument(
$doc
);
Formats the DTA::CAB::Document $doc as XML to the in-memory buffer $fmt->{xdoc}.
Utilities
- parseNode
-
$obj
=
$fmt
->parseNode(
$nod
);
Returns a perl object represented by the XML::LibXML::Node $nod; attempting to map xml to perl structure "sensibly".
DTA::CAB::Datum nodes (document, sentence, token) get some additional baggage:
_xmldata
=>
$data
,
##-- unparsed content (raw string)
- xmlNode
-
$nod
=
$fmt
->xmlNode(
$thingy
,
$name
);
Returns an xml node for the perl scalar $thingy using $name as its key, used in constructing XML output documents.
- _pushValue
-
$val
= PACKAGE::_pushValue(\
%hash
,
$key
,
$val
);
##-- $hash{$key}=$val;
$val
= PACKAGE::_pushValue(\
@array
,
$key
,
$val
);
##-- push(@array,$val)
Convenience routine used by parseNode() when constructing perl data structures from XML input.
EXAMPLE
An example file in the format accepted/generated by this module is:
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
<doc>
<s lang=
"de"
>
<w exlex=
"wie"
hasmorph=
"1"
msafe=
"1"
errid=
"ec"
t=
"wie"
lang=
"de"
>
<moot word=
"wie"
lemma=
"wie"
tag=
"PWAV"
/>
<xlit latin1Text=
"wie"
isLatin1=
"1"
isLatinExt=
"1"
/>
</w>
<w msafe=
"0"
t=
"oede"
>
<moot tag=
"ADJD"
lemma=
"öde"
word=
"öde"
/>
<xlit isLatinExt=
"1"
isLatin1=
"1"
latin1Text=
"oede"
/>
</w>
<w msafe=
"1"
errid=
"ec"
t=
"!"
exlex=
"!"
>
<moot lemma=
"!"
word=
"!"
tag=
"$."
/>
<xlit isLatinExt=
"1"
isLatin1=
"1"
latin1Text=
"!"
/>
</w>
</s>
</doc>
AUTHOR
Bryan Jurish <moocow@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2010-2019 by Bryan Jurish
This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.24.1 or, at your option, any later version of Perl 5 you may have available.
SEE ALSO
dta-cab-convert.perl(1), DTA::CAB::Format::XmlCommon(3pm), DTA::CAB::Format::Builtin(3pm), DTA::CAB::Format(3pm), DTA::CAB(3pm), perl(1), ...
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 648:
Non-ASCII character seen before =encoding in 'lemma="öde"'. Assuming UTF-8