Files
metasploit-gs/api/Rex/Parser/GraphML/Document.html
T
jenkins-metasploit c3f5bd3de2 Reboot gh-pages
2026-05-08 17:08:43 +00:00

677 lines
47 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Class: Rex::Parser::GraphML::Document
&mdash; Documentation by YARD 0.9.37
</title>
<link rel="stylesheet" href="../../../css/style.css" type="text/css" />
<link rel="stylesheet" href="../../../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "Rex::Parser::GraphML::Document";
relpath = '../../../';
</script>
<script type="text/javascript" charset="utf-8" src="../../../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../../../class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../../../_index.html">Index (D)</a> &raquo;
<span class='title'><span class='object_link'><a href="../../../Rex.html" title="Rex (module)">Rex</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../Parser.html" title="Rex::Parser (module)">Parser</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../GraphML.html" title="Rex::Parser::GraphML (module)">GraphML</a></span></span>
&raquo;
<span class="title">Document</span>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="../../../class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Class: Rex::Parser::GraphML::Document
</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd>
<span class="inheritName">Nokogiri::XML::SAX::Document</span>
<ul class="fullTree">
<li>Object</li>
<li class="next">Nokogiri::XML::SAX::Document</li>
<li class="next">Rex::Parser::GraphML::Document</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/rex/parser/graphml.rb</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>The top-level document parser.</p>
</div>
</div>
<div class="tags">
</div>
<h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#graphml-instance_method" title="#graphml (instance method)">#<strong>graphml</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the value of attribute graphml.</p>
</div></span>
</li>
</ul>
<h2>
Instance Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#characters-instance_method" title="#characters (instance method)">#<strong>characters</strong>(string) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#end_element-instance_method" title="#end_element (instance method)">#<strong>end_element</strong>(name) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong> &#x21d2; Document </a>
</span>
<span class="note title constructor">constructor</span>
<span class="summary_desc"><div class='inline'>
<p>A new instance of Document.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#start_element-instance_method" title="#start_element (instance method)">#<strong>start_element</strong>(name, attrs = []) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
</ul>
<div id="constructor_details" class="method_details_list">
<h2>Constructor Details</h2>
<div class="method_details first">
<h3 class="signature first" id="initialize-instance_method">
#<strong>initialize</strong> &#x21d2; <tt><span class='object_link'><a href="" title="Rex::Parser::GraphML::Document (class)">Document</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns a new instance of Document.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
438
439
440
441
442
443
444</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/parser/graphml.rb', line 438</span>
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
<span class='ivar'>@stack</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='ivar'>@nodes</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='ivar'>@meta_attributes</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='ivar'>@graphml</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>super</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="instance_attr_details" class="attr_details">
<h2>Instance Attribute Details</h2>
<span id="graphml=-instance_method"></span>
<div class="method_details first">
<h3 class="signature first" id="graphml-instance_method">
#<strong>graphml</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the value of attribute graphml.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
565
566
567</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/parser/graphml.rb', line 565</span>
<span class='kw'>def</span> <span class='id identifier rubyid_graphml'>graphml</span>
<span class='ivar'>@graphml</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="instance_method_details" class="method_details_list">
<h2>Instance Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="characters-instance_method">
#<strong>characters</strong>(string) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/parser/graphml.rb', line 503</span>
<span class='kw'>def</span> <span class='id identifier rubyid_characters'>characters</span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
<span class='id identifier rubyid_element'>element</span> <span class='op'>=</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
<span class='kw'>case</span> <span class='id identifier rubyid_element'>element</span>
<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Data.html" title="Rex::Parser::GraphML::Element::Data (class)">Data</a></span></span>
<span class='id identifier rubyid_parent'>parent</span> <span class='op'>=</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>2</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_meta_attribute'>meta_attribute</span> <span class='op'>=</span> <span class='ivar'>@meta_attributes</span><span class='lbracket'>[</span><span class='id identifier rubyid_element'>element</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span>
<span class='kw'>unless</span> <span class='id identifier rubyid_meta_attribute'>meta_attribute</span><span class='period'>.</span><span class='id identifier rubyid_valid_for?'>valid_for?</span> <span class='id identifier rubyid_parent'>parent</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/ParserError.html" title="Rex::Parser::GraphML::Error::ParserError (class)">ParserError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>The </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_meta_attribute'>meta_attribute</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'> attribute is invalid for </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_parent'>parent</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='op'>::</span><span class='const'>ELEMENT_NAME</span><span class='embexpr_end'>}</span><span class='tstring_content'> elements</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_meta_attribute'>meta_attribute</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:string</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_parent'>parent</span><span class='period'>.</span><span class='id identifier rubyid_attributes'>attributes</span><span class='lbracket'>[</span><span class='id identifier rubyid_meta_attribute'>meta_attribute</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
<span class='comment'># this may be run multiple times if there is an XML escape sequence in the string to concat the parts together
</span> <span class='id identifier rubyid_parent'>parent</span><span class='period'>.</span><span class='id identifier rubyid_attributes'>attributes</span><span class='lbracket'>[</span><span class='id identifier rubyid_meta_attribute'>meta_attribute</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_meta_attribute'>meta_attribute</span><span class='period'>.</span><span class='id identifier rubyid_convert'>convert</span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_parent'>parent</span><span class='period'>.</span><span class='id identifier rubyid_attributes'>attributes</span><span class='lbracket'>[</span><span class='id identifier rubyid_meta_attribute'>meta_attribute</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_meta_attribute'>meta_attribute</span><span class='period'>.</span><span class='id identifier rubyid_convert'>convert</span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Default.html" title="Rex::Parser::GraphML::Element::Default (class)">Default</a></span></span>
<span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Default.html" title="Rex::Parser::GraphML::Element::Default (class)">Default</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Element/Default.html#initialize-instance_method" title="Rex::Parser::GraphML::Element::Default#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>value:</span> <span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="end_element-instance_method">
#<strong>end_element</strong>(name) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/parser/graphml.rb', line 526</span>
<span class='kw'>def</span> <span class='id identifier rubyid_end_element'>end_element</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
<span class='id identifier rubyid_element'>element</span> <span class='op'>=</span> <span class='ivar'>@stack</span><span class='period'>.</span><span class='id identifier rubyid_pop'>pop</span>
<span class='id identifier rubyid_populate_element_default_attributes'>populate_element_default_attributes</span><span class='lparen'>(</span><span class='id identifier rubyid_element'>element</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_element'>element</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'><span class='object_link'><a href="AttributeContainer.html" title="Rex::Parser::GraphML::AttributeContainer (class)">AttributeContainer</a></span></span>
<span class='kw'>case</span> <span class='id identifier rubyid_name'>name</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>default</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_key'>key</span> <span class='op'>=</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span> <span class='op'>=</span> <span class='id identifier rubyid_element'>element</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>edge</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_graph'>graph</span> <span class='op'>=</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_graph'>graph</span><span class='period'>.</span><span class='id identifier rubyid_edges'>edges</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_element'>element</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>graph</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_element'>element</span><span class='period'>.</span><span class='id identifier rubyid_edges'>edges</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_edge'>edge</span><span class='op'>|</span>
<span class='id identifier rubyid_source_node'>source_node</span> <span class='op'>=</span> <span class='id identifier rubyid_element'>element</span><span class='period'>.</span><span class='id identifier rubyid_nodes'>nodes</span><span class='lbracket'>[</span><span class='id identifier rubyid_edge'>edge</span><span class='period'>.</span><span class='id identifier rubyid_source'>source</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/InvalidAttributeError.html" title="Rex::Parser::GraphML::Error::InvalidAttributeError (class)">InvalidAttributeError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Error/InvalidAttributeError.html#initialize-instance_method" title="Rex::Parser::GraphML::Error::InvalidAttributeError#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>edge</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>source</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>details:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>undefined source: &#39;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_edge'>edge</span><span class='period'>.</span><span class='id identifier rubyid_source'>source</span><span class='embexpr_end'>}</span><span class='tstring_content'>&#39;</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>missing:</span> <span class='kw'>false</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_source_node'>source_node</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
<span class='id identifier rubyid_target_node'>target_node</span> <span class='op'>=</span> <span class='id identifier rubyid_element'>element</span><span class='period'>.</span><span class='id identifier rubyid_nodes'>nodes</span><span class='lbracket'>[</span><span class='id identifier rubyid_edge'>edge</span><span class='period'>.</span><span class='id identifier rubyid_target'>target</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/InvalidAttributeError.html" title="Rex::Parser::GraphML::Error::InvalidAttributeError (class)">InvalidAttributeError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Error/InvalidAttributeError.html#initialize-instance_method" title="Rex::Parser::GraphML::Error::InvalidAttributeError#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>edge</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>target</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>details:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>undefined target: &#39;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_edge'>edge</span><span class='period'>.</span><span class='id identifier rubyid_target'>target</span><span class='embexpr_end'>}</span><span class='tstring_content'>&#39;</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>missing:</span> <span class='kw'>false</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_target_node'>target_node</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
<span class='id identifier rubyid_source_node'>source_node</span><span class='period'>.</span><span class='id identifier rubyid_edges'>edges</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_edge'>edge</span>
<span class='id identifier rubyid_target_node'>target_node</span><span class='period'>.</span><span class='id identifier rubyid_edges'>edges</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_edge'>edge</span>
<span class='kw'>end</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>key</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_meta_attribute'>meta_attribute</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="MetaAttribute.html" title="Rex::Parser::GraphML::MetaAttribute (class)">MetaAttribute</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_key'><span class='object_link'><a href="MetaAttribute.html#from_key-class_method" title="Rex::Parser::GraphML::MetaAttribute.from_key (method)">from_key</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_element'>element</span><span class='rparen'>)</span>
<span class='ivar'>@meta_attributes</span><span class='lbracket'>[</span><span class='id identifier rubyid_meta_attribute'>meta_attribute</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_meta_attribute'>meta_attribute</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>node</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_graph'>graph</span> <span class='op'>=</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_graph'>graph</span><span class='period'>.</span><span class='id identifier rubyid_nodes'>nodes</span><span class='lbracket'>[</span><span class='id identifier rubyid_element'>element</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_element'>element</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="start_element-instance_method">
#<strong>start_element</strong>(name, attrs = []) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/parser/graphml.rb', line 446</span>
<span class='kw'>def</span> <span class='id identifier rubyid_start_element'>start_element</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_attrs'>attrs</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='id identifier rubyid_attrs'>attrs</span> <span class='op'>=</span> <span class='id identifier rubyid_attrs'>attrs</span><span class='period'>.</span><span class='id identifier rubyid_to_h'>to_h</span>
<span class='kw'>case</span> <span class='id identifier rubyid_name'>name</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>data</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/ParserError.html" title="Rex::Parser::GraphML::Error::ParserError (class)">ParserError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>The \&#39;data\&#39; element must be a direct child of an attribute container</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'><span class='object_link'><a href="AttributeContainer.html" title="Rex::Parser::GraphML::AttributeContainer (class)">AttributeContainer</a></span></span>
<span class='id identifier rubyid_element'>element</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Data.html" title="Rex::Parser::GraphML::Element::Data (class)">Data</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_xml_attributes'><span class='object_link'><a href="Element/Data.html#from_xml_attributes-class_method" title="Rex::Parser::GraphML::Element::Data.from_xml_attributes (method)">from_xml_attributes</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_attrs'>attrs</span><span class='rparen'>)</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>default</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/ParserError.html" title="Rex::Parser::GraphML::Error::ParserError (class)">ParserError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>The \&#39;default\&#39; element must be a direct child of a \&#39;key\&#39; element</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Key.html" title="Rex::Parser::GraphML::Element::Key (class)">Key</a></span></span>
<span class='id identifier rubyid_element'>element</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Default.html" title="Rex::Parser::GraphML::Element::Default (class)">Default</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_xml_attributes'><span class='object_link'><a href="Element/Default.html#from_xml_attributes-class_method" title="Rex::Parser::GraphML::Element::Default.from_xml_attributes (method)">from_xml_attributes</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_attrs'>attrs</span><span class='rparen'>)</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>edge</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/ParserError.html" title="Rex::Parser::GraphML::Error::ParserError (class)">ParserError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>The \&#39;edge\&#39; element must be a direct child of a \&#39;graph\&#39; element</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Graph.html" title="Rex::Parser::GraphML::Element::Graph (class)">Graph</a></span></span>
<span class='id identifier rubyid_element'>element</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Edge.html" title="Rex::Parser::GraphML::Element::Edge (class)">Edge</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_xml_attributes'><span class='object_link'><a href="Element/Edge.html#from_xml_attributes-class_method" title="Rex::Parser::GraphML::Element::Edge.from_xml_attributes (method)">from_xml_attributes</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_attrs'>attrs</span><span class='comma'>,</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_edgedefault'>edgedefault</span><span class='rparen'>)</span>
<span class='ivar'>@graphml</span><span class='period'>.</span><span class='id identifier rubyid_edges'>edges</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_element'>element</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>graph</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_element'>element</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Graph.html" title="Rex::Parser::GraphML::Element::Graph (class)">Graph</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_xml_attributes'><span class='object_link'><a href="Element/Graph.html#from_xml_attributes-class_method" title="Rex::Parser::GraphML::Element::Graph.from_xml_attributes (method)">from_xml_attributes</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_attrs'>attrs</span><span class='rparen'>)</span>
<span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_subgraph'>subgraph</span> <span class='op'>=</span> <span class='id identifier rubyid_element'>element</span> <span class='kw'>if</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Node.html" title="Rex::Parser::GraphML::Element::Node (class)">Node</a></span></span>
<span class='ivar'>@graphml</span><span class='period'>.</span><span class='id identifier rubyid_graphs'>graphs</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_element'>element</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>graphml</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_element'>element</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/GraphML.html" title="Rex::Parser::GraphML::Element::GraphML (class)">GraphML</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Element/GraphML.html#initialize-instance_method" title="Rex::Parser::GraphML::Element::GraphML#initialize (method)">new</a></span></span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/ParserError.html" title="Rex::Parser::GraphML::Error::ParserError (class)">ParserError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>The \&#39;graphml\&#39; element must be a top-level element</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='ivar'>@stack</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
<span class='ivar'>@graphml</span> <span class='op'>=</span> <span class='id identifier rubyid_element'>element</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>key</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/ParserError.html" title="Rex::Parser::GraphML::Error::ParserError (class)">ParserError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>The \&#39;key\&#39; element must be a direct child of a \&#39;graphml\&#39; element</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/GraphML.html" title="Rex::Parser::GraphML::Element::GraphML (class)">GraphML</a></span></span>
<span class='id identifier rubyid_element'>element</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Key.html" title="Rex::Parser::GraphML::Element::Key (class)">Key</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_xml_attributes'><span class='object_link'><a href="Element/Key.html#from_xml_attributes-class_method" title="Rex::Parser::GraphML::Element::Key.from_xml_attributes (method)">from_xml_attributes</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_attrs'>attrs</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/InvalidAttributeError.html" title="Rex::Parser::GraphML::Error::InvalidAttributeError (class)">InvalidAttributeError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Error/InvalidAttributeError.html#initialize-instance_method" title="Rex::Parser::GraphML::Error::InvalidAttributeError#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>key</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>id</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>details:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>duplicate key id</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@meta_attributes</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span> <span class='id identifier rubyid_element'>element</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
<span class='kw'>if</span> <span class='ivar'>@meta_attributes</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_attr'>attr</span><span class='op'>|</span> <span class='id identifier rubyid_attr'>attr</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='op'>==</span> <span class='id identifier rubyid_element'>element</span><span class='period'>.</span><span class='id identifier rubyid_attr_name'>attr_name</span> <span class='rbrace'>}</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/InvalidAttributeError.html" title="Rex::Parser::GraphML::Error::InvalidAttributeError (class)">InvalidAttributeError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Error/InvalidAttributeError.html#initialize-instance_method" title="Rex::Parser::GraphML::Error::InvalidAttributeError#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>key</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>attr.name</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>details:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>duplicate key attr.name</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>node</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/ParserError.html" title="Rex::Parser::GraphML::Error::ParserError (class)">ParserError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>The \&#39;node\&#39; element must be a direct child of a \&#39;graph\&#39; element</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='ivar'>@stack</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Graph.html" title="Rex::Parser::GraphML::Element::Graph (class)">Graph</a></span></span>
<span class='id identifier rubyid_element'>element</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Element.html" title="Rex::Parser::GraphML::Element (module)">Element</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Element/Node.html" title="Rex::Parser::GraphML::Element::Node (class)">Node</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_xml_attributes'><span class='object_link'><a href="Element/Node.html#from_xml_attributes-class_method" title="Rex::Parser::GraphML::Element::Node.from_xml_attributes (method)">from_xml_attributes</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_attrs'>attrs</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/InvalidAttributeError.html" title="Rex::Parser::GraphML::Error::InvalidAttributeError (class)">InvalidAttributeError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Error/InvalidAttributeError.html#initialize-instance_method" title="Rex::Parser::GraphML::Error::InvalidAttributeError#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>node</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>id</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>details:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>duplicate node id</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@nodes</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span> <span class='id identifier rubyid_element'>element</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
<span class='ivar'>@nodes</span><span class='lbracket'>[</span><span class='id identifier rubyid_element'>element</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_element'>element</span>
<span class='ivar'>@graphml</span><span class='period'>.</span><span class='id identifier rubyid_nodes'>nodes</span><span class='lbracket'>[</span><span class='id identifier rubyid_element'>element</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_element'>element</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Error.html" title="Rex::Parser::GraphML::Error (module)">Error</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error/ParserError.html" title="Rex::Parser::GraphML::Error::ParserError (class)">ParserError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Unknown element: </span><span class='tstring_end'>&#39;</span></span> <span class='op'>+</span> <span class='id identifier rubyid_name'>name</span>
<span class='kw'>end</span>
<span class='ivar'>@stack</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span> <span class='id identifier rubyid_element'>element</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:04:07 2026 by
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.9.37 (ruby-3.1.5).
</div>
</div>
</body>
</html>