xml
XML data types > XML data classes
Next:xml-chunk


Vocabulary
xml.data

Class description
Tuple representing an XML document, delegating to the main tag, containing the fields prolog (the header <?xml...?>), before (whatever comes between the prolog and the main tag) and after (whatever comes after the main tag).

See also
<xml>, tag, prolog

Definition
USING: sequences ;

IN: xml.data

TUPLE: xml
{ prolog prolog initial: T{ prolog } }
{ before sequence initial: f }
{ body tag initial: T{ tag } }
{ after sequence initial: f } ;


Methods
USING: accessors xml.data xml.syntax.inverse ;

M: xml >xml body>> ;


USING: accessors xml.data xml.syntax.inverse ;

M: xml >xml-chunk body>> 1chunk ;


USING: accessors kernel xml.data xml.syntax.private ;

M: xml [interpolate-xml]
dup body>> interpolate-tag [ [ (clone) swap ] curry ] dip
[ drop >>body ] compose compose ;


USING: accessors kernel xml.data xml.syntax.inverse ;

M: xml [undo-xml] body>> [undo-xml] [ [ >xml ] ] dip compose ;


USING: html.templates xml.data xml.writer ;

M: xml call-template* write-xml ;


USING: kernel xml.data ;

M: xml clone xml clone-slots ;


USING: accessors kernel sequences xml.data ;

M: xml length [ body>> ] call \ length execute ;


USING: accessors kernel sequences xml.data ;

M: xml lengthen [ body>> ] call \ lengthen execute ;


USING: kernel sequences xml.data xml.data.private ;

M: xml like
swap dup xml?
[ nip ] [ dup tag? [ tag>xml ] [ sequence>xml ] if ] if ;


USING: accessors kernel sequences xml.data ;

M: xml new-resizable [ body>> ] call \ new-resizable execute ;


USING: accessors kernel sequences xml.data ;

M: xml new-sequence [ body>> ] call \ new-sequence execute ;


USING: accessors kernel sequences xml.data ;

M: xml nth [ body>> ] call \ nth execute ;


USING: accessors kernel sequences.private xml.data ;

M: xml nth-unsafe [ body>> ] call \ nth-unsafe execute ;


USING: accessors kernel xml.data xml.syntax.private ;

M: xml push-item
[ before>> push-item ] [ body>> push-item ]
[ after>> push-item ] tri ;


USING: accessors kernel sequences xml.data ;

M: xml set-length [ body>> ] call \ set-length execute ;


USING: accessors kernel sequences xml.data ;

M: xml set-nth [ body>> ] call \ set-nth execute ;


USING: accessors kernel sequences.private xml.data ;

M: xml set-nth-unsafe
[ body>> ] call \ set-nth-unsafe execute ;


USING: accessors combinators xml.data xml.writer ;

M: xml write-xml
{
[ prolog>> write-xml ]
[ before>> write-xml ]
[ body>> write-xml ]
[ after>> write-xml ]
} cleave ;