📄 xml.html
字号:
<head><!-- Generated by perlmod2www.pl --><title>XML documentation.</title></head><body bgcolor="white"><HR><H4>SVG</H4><H3>XML</H3><A NAME="TOP"></A><TABLE BORDER="1" WIDTH="100%"><TR><TD><A HREF="#SUMMARY">Summary</A></TD><TD><A HREF="#libs">Included libraries</A></TD><TD><A HREF="#vardefs">Package variables</A></TD><TD><A HREF="#General">General documentation</A></TD><TD><A HREF="#Methods">Methods</A></TD></TR></TABLE><HR><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR><TD BGCOLOR="#ffae84"><B>Summary</B></TD></TR></TABLE><TABLE BORDER="0" WIDTH="100%"><TR><TD><pre><B>SVG::XML</B> - Handle the XML generation bits for SVG.pm<BR></pre></TD></TR></TABLE><A NAME="vardefs"></A><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD><B>Package variables</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="0" WIDTH="100%"><TR BGCOLOR="#ffd39b"><TD COLSPAN="2"><B>Globals (from <FONT COLOR="BLUE">use vars</FONT> definitions)</B></TD></TR><TR><TD COLSPAN="2"><font color="#1f32ff">@EXPORT</font></TD></TR><TR><TD COLSPAN="2"><font color="#1f32ff">$VERSION</font> = <font color="#007400">"2.26"</font></TD></TR></TABLE><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD WIDTH="150"><B>Included modules</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="0"><TR><TD COLSPAN="2"><b><font color="#0000ff">strict</font></b></TD></TR></TABLE><A NAME="libs"></A><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD><B>Inherit</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="0"><TR><TD><b><font color="#0000ff">Exporter</font></b> </TD></TR></TABLE><A NAME="SYNOPSIS"></A><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD><B>Synopsis</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="0"><TR><TD COLSPAN="2"><FONT COLOR="RED">No synopsis!</FONT></TD></TR></TABLE><A NAME="DESCRIPTION"></A><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD><B>Description</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="0"><TR><TD COLSPAN="2"><FONT COLOR="RED">No description!</FONT></TD></TR></TABLE><A NAME="Methods"></A><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD><B>Methods</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="1" CELLSPACING="5"><TR><TD><B>cssstyle</B></TD><TD><FONT COLOR="RED"><B>No description</B></FONT></TD><TD><A HREF="#CODE1">Code</A></TD></TR><TR><TD><B>xmlattrib</B></TD><TD><FONT COLOR="RED"><B>No description</B></FONT></TD><TD><A HREF="#CODE2">Code</A></TD></TR><TR><TD><B>xmlescp</B></TD><TD><FONT COLOR="RED"><B>No description</B></FONT></TD><TD><A HREF="#CODE3">Code</A></TD></TR></TABLE><A NAME="MethDesc"></A><HR><H2>Methods description</H2><A NAME="MethCode"></A><HR><H2>Methods code</H2><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#dcab68"><TD WIDTH="200"><A NAME="CODE1"></A><B>cssstyle</B></TD><TD>description</TD><TD WIDTH="30"><A HREF="#TOP">top</A></TD><TD WIDTH="30">prev</TD><TD WIDTH="30"><A HREF="#CODE2">next</A></TD></TR></TABLE><font color="#0000ff"><b>sub</b></font> <font color="#ff0000"><b>cssstyle</b></font> {<pre> <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">%attrs</font>=<font color="#1f32ff">@_</font>; <font color="#0000ff"><b>return</b></font><font color="#0000ff"><b>(</b></font><font color="#4169e1"><b>join</b></font><font color="#0000ff"><b>(</b></font><font color="#007400">'; '</font>,<font color="#4169e1"><b>map</b></font> <font color="#0000ff"><b>{</b></font> <font color="#4169e1"><b>qq</b></font><font color="#007400">(<font color="#1f32ff">$_</font>: )</font>.<font color="#1f32ff">$attrs</font><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$_</font><font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>}</b></font> <font color="#4169e1"><b>keys</b></font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">%attrs</font><font color="#0000ff"><b>)</b></font><font color="#0000ff"><b>)</b></font><font color="#0000ff"><b>)</b></font>;</pre>}<BR><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#dcab68"><TD WIDTH="200"><A NAME="CODE2"></A><B>xmlattrib</B></TD><TD>description</TD><TD WIDTH="30"><A HREF="#TOP">top</A></TD><TD WIDTH="30"><A HREF="#CODE1">prev</A></TD><TD WIDTH="30"><A HREF="#CODE3">next</A></TD></TR></TABLE><font color="#0000ff"><b>sub</b></font> <font color="#ff0000"><b>xmlattrib</b></font> {<pre> <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">%attrs</font>=<font color="#1f32ff">@_</font>; <font color="#0000ff"><b>return</b></font><font color="#0000ff"><b>(</b></font><font color="#4169e1"><b>join</b></font><font color="#0000ff"><b>(</b></font><font color="#007400">' '</font>,<font color="#4169e1"><b>map</b></font> <font color="#0000ff"><b>{</b></font> <font color="#4169e1"><b>qq</b></font><font color="#007400">(<font color="#1f32ff">$_</font>=")</font>.<font color="#ff8204">xmlescp</font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">$attrs</font><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$_</font><font color="#0000ff"><b>}</b></font><font color="#0000ff"><b>)</b></font>.<font color="#ff8204">q</font><font color="#0000ff"><b>(</b></font><font color="#007400">") } keys(<font color="#1f32ff">%attrs</font>)));}sub xmltag ($$;@) { my (<font color="#1f32ff">$name</font>,<font color="#1f32ff">$ns</font>,<font color="#1f32ff">%attrs</font>)=<font color="#1f32ff">@_</font>; <font color="#1f32ff">$ns</font>=<font color="#1f32ff">$ns</font>?"</font><font color="#1f32ff">$ns</font>:<font color="#007400">":''; my <font color="#1f32ff">$at</font>=' '.xmlattrib(<font color="#1f32ff">%attrs</font>)||''; return qq(<<font color="#1f32ff">$ns</font><font color="#1f32ff">$name</font><font color="#1f32ff">$at</font> />);}sub xmltag_ln ($$;@) { my (<font color="#1f32ff">$name</font>,<font color="#1f32ff">$ns</font>,<font color="#1f32ff">%attrs</font>)=<font color="#1f32ff">@_</font>; return xmltag(<font color="#1f32ff">$name</font>,<font color="#1f32ff">$ns</font>,<font color="#1f32ff">%attrs</font>);}sub xmltagopen ($$;@) { my (<font color="#1f32ff">$name</font>,<font color="#1f32ff">$ns</font>,<font color="#1f32ff">%attrs</font>)=<font color="#1f32ff">@_</font>; <font color="#1f32ff">$ns</font>=<font color="#1f32ff">$ns</font>?"</font><font color="#1f32ff">$ns</font>:<font color="#007400">":''; my <font color="#1f32ff">$at</font>=' '.xmlattrib(<font color="#1f32ff">%attrs</font>)||''; return qq(<<font color="#1f32ff">$ns</font><font color="#1f32ff">$name</font><font color="#1f32ff">$at</font>>);}sub xmltagopen_ln ($$;@) { my (<font color="#1f32ff">$name</font>,<font color="#1f32ff">$ns</font>,<font color="#1f32ff">%attrs</font>)=<font color="#1f32ff">@_</font>; return xmltagopen(<font color="#1f32ff">$name</font>,<font color="#1f32ff">$ns</font>,<font color="#1f32ff">%attrs</font>);}sub xmlcomment ($$) { my (<font color="#1f32ff">$self</font>,<font color="#1f32ff">$r_comment</font>) = <font color="#1f32ff">@_</font>; my <font color="#1f32ff">$ind</font> = <font color="#1f32ff">$self</font>->{-docref}->{-elsep}.<font color="#1f32ff">$self</font>->{-docref}->{-indent} x <font color="#1f32ff">$self</font>->{-docref}->{-level}; return(join(<font color="#1f32ff">$ind</font>,map { qq(<!-- <font color="#1f32ff">$_</font> -->)} @$r_comment));}sub xmlpi ($$) { my (<font color="#1f32ff">$self</font>,<font color="#1f32ff">$r_pi</font>) = <font color="#1f32ff">@_</font>; my <font color="#1f32ff">$ind</font> = <font color="#1f32ff">$self</font>->{-docref}->{-elsep}.<font color="#1f32ff">$self</font>->{-docref}->{-indent} x <font color="#1f32ff">$self</font>->{-docref}->{-level}; return(join(<font color="#1f32ff">$ind</font>,map { qq(<?<font color="#1f32ff">$_</font>?>)} @$r_pi));}*processinginstruction=\&xmlpi;sub xmltagclose ($$) { my (<font color="#1f32ff">$name</font>,<font color="#1f32ff">$ns</font>)=<font color="#1f32ff">@_</font>; <font color="#1f32ff">$ns</font>=<font color="#1f32ff">$ns</font>?"</font><font color="#1f32ff">$ns</font>:<font color="#007400">":''; return qq(</<font color="#1f32ff">$ns</font><font color="#1f32ff">$name</font>>);}sub xmltagclose_ln ($$) { my (<font color="#1f32ff">$name</font>,<font color="#1f32ff">$ns</font>)=<font color="#1f32ff">@_</font>; return xmltagclose(<font color="#1f32ff">$name</font>,<font color="#1f32ff">$ns</font>);}sub dtddecl ($) { my <font color="#1f32ff">$self</font> = shift; my <font color="#1f32ff">$docroot</font> = <font color="#1f32ff">$self</font>->{-docroot} || 'svg'; my <font color="#1f32ff">$id</font>; if (<font color="#1f32ff">$self</font>->{-pubid}) { <font color="#1f32ff">$id</font> = 'PUBLIC "</font><font color="#007400">'.$self->{-pubid}.'</font><font color="#007400">"'; <font color="#1f32ff">$id</font> .= ' "</font><font color="#007400">'.$self->{-sysid}.'</font><font color="#007400">"' if (<font color="#1f32ff">$self</font>->{-sysid}); } elsif (<font color="#1f32ff">$self</font>->{-sysid}) { <font color="#1f32ff">$id</font> = 'SYSTEM "</font><font color="#007400">'.$self->{-sysid}.'</font><font color="#007400">"'; } else { <font color="#1f32ff">$id</font> = 'PUBLIC "</font>-<font color="#006400"><b>//</b></font>W3C<font color="#006400"><b>//</b></font>DTD SVG 1.0<font color="#006400"><b>//</b></font>EN<font color="#007400">"' . <font color="#1f32ff">$self</font>->{-docref}->{-elsep} . "</font>\"<font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>-docref<font color="#0000ff"><b>}</b></font>-><font color="#0000ff"><b>{</b></font>-dtd<font color="#0000ff"><b>}</b></font>\"<font color="#007400">"} my <font color="#1f32ff">$extension</font> = ''; my <font color="#1f32ff">$attlist</font> = ''; my <font color="#1f32ff">$element</font> = ''; my <font color="#1f32ff">$notation</font> = ''; my <font color="#1f32ff">$ext_flag</font> = 0; my <font color="#1f32ff">%extlist</font> = (-attlist=>'ATTLIST', -element=>'ELEMENT', -notation=>'NOTATION',); my <font color="#1f32ff">@out</font>; foreach my <font color="#1f32ff">$att</font> (keys <font color="#1f32ff">%extlist</font>) { if(ref(<font color="#1f32ff">$self</font>->{<font color="#1f32ff">$att</font>}) eq 'ARRAY') { <font color="#1f32ff">$ext_flag</font>++; while (my <font color="#1f32ff">$entry</font> = shift @{$self->{$att}}) { push <font color="#1f32ff">@out</font>, "</font><font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>-docref<font color="#0000ff"><b>}</b></font>-><font color="#0000ff"><b>{</b></font>-elsep<font color="#0000ff"><b>}</b></font><!<font color="#1f32ff">$extlist</font><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$att</font><font color="#0000ff"><b>}</b></font> <font color="#1f32ff">$entry</font> !><font color="#007400">"; } } elsif (<font color="#1f32ff">$self</font>->{<font color="#1f32ff">$att</font>}) { <font color="#1f32ff">$ext_flag</font>++; push <font color="#1f32ff">@out</font>, "</font><!<font color="#1f32ff">$extlist</font><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$att</font><font color="#0000ff"><b>}</b></font> <font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$att</font><font color="#0000ff"><b>}</b></font> !><font color="#007400">" ; } } <font color="#1f32ff">$ext_flag</font>++ if (<font color="#1f32ff">$self</font>->{-extension}); #>>>TBD: extend this to handle a list of strings or a hash of entity definitions <font color="#1f32ff">$extension</font> = "</font> <font color="#0000ff"><b>[</b></font><font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>-docref<font color="#0000ff"><b>}</b></font>-><font color="#0000ff"><b>{</b></font>-elsep<font color="#0000ff"><b>}</b></font><font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>-extension<font color="#0000ff"><b>}</b></font><font color="#007400">".join ('',<font color="#1f32ff">@out</font>)."</font><font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>-docref<font color="#0000ff"><b>}</b></font>-><font color="#0000ff"><b>{</b></font>-elsep<font color="#0000ff"><b>}</b></font><font color="#0000ff"><b>]</b></font><font color="#007400">" if (<font color="#1f32ff">$ext_flag</font>); my <font color="#1f32ff">$at</font>=join(' ',(<font color="#1f32ff">$docroot</font>, <font color="#1f32ff">$id</font>)); return qq[<!DOCTYPE <font color="#1f32ff">$at</font><font color="#1f32ff">$extension</font>>];}sub xmldecl ($) { my <font color="#1f32ff">$self</font> = shift; my <font color="#1f32ff">$version</font>= <font color="#1f32ff">$self</font>->{-version} || '1.0'; my <font color="#1f32ff">$encoding</font> = <font color="#1f32ff">$self</font>->{-encoding} || 'UTF-8'; my <font color="#1f32ff">$standalone</font> = <font color="#1f32ff">$self</font>->{-standalone} ||'yes'; return qq
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -