Code Search for Developers
 
 
  

STAXEventReader.html from PeerWriter at Krugle


Show STAXEventReader.html syntax highlighted

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>STAXEventReader xref</title>
<link type="text/css" rel="stylesheet" href="../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../apidocs/org/dom4j/io/STAXEventReader.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> * This software is open source.</em>
<a name="5" href="#5">5</a>   <em class="comment"> * See the bottom of this file for the licence.</em>
<a name="6" href="#6">6</a>   <em class="comment"> */</em>
<a name="7" href="#7">7</a>   
<a name="8" href="#8">8</a>   <strong>package</strong> <a href="../../../org/dom4j/io/package-summary.html">org.dom4j.io</a>;
<a name="9" href="#9">9</a>   
<a name="10" href="#10">10</a>  <strong>import</strong> java.io.InputStream;
<a name="11" href="#11">11</a>  <strong>import</strong> java.io.Reader;
<a name="12" href="#12">12</a>  <strong>import</strong> java.util.Iterator;
<a name="13" href="#13">13</a>  
<a name="14" href="#14">14</a>  <strong>import</strong> javax.xml.namespace.QName;
<a name="15" href="#15">15</a>  <strong>import</strong> javax.xml.stream.XMLEventReader;
<a name="16" href="#16">16</a>  <strong>import</strong> javax.xml.stream.XMLInputFactory;
<a name="17" href="#17">17</a>  <strong>import</strong> javax.xml.stream.XMLStreamConstants;
<a name="18" href="#18">18</a>  <strong>import</strong> javax.xml.stream.XMLStreamException;
<a name="19" href="#19">19</a>  <strong>import</strong> javax.xml.stream.events.Attribute;
<a name="20" href="#20">20</a>  <strong>import</strong> javax.xml.stream.events.Characters;
<a name="21" href="#21">21</a>  <strong>import</strong> javax.xml.stream.events.Comment;
<a name="22" href="#22">22</a>  <strong>import</strong> javax.xml.stream.events.EndElement;
<a name="23" href="#23">23</a>  <strong>import</strong> javax.xml.stream.events.EntityReference;
<a name="24" href="#24">24</a>  <strong>import</strong> javax.xml.stream.events.Namespace;
<a name="25" href="#25">25</a>  <strong>import</strong> javax.xml.stream.events.ProcessingInstruction;
<a name="26" href="#26">26</a>  <strong>import</strong> javax.xml.stream.events.StartDocument;
<a name="27" href="#27">27</a>  <strong>import</strong> javax.xml.stream.events.StartElement;
<a name="28" href="#28">28</a>  <strong>import</strong> javax.xml.stream.events.XMLEvent;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <strong>import</strong> org.dom4j.CharacterData;
<a name="31" href="#31">31</a>  <strong>import</strong> org.dom4j.Document;
<a name="32" href="#32">32</a>  <strong>import</strong> org.dom4j.DocumentFactory;
<a name="33" href="#33">33</a>  <strong>import</strong> org.dom4j.Element;
<a name="34" href="#34">34</a>  <strong>import</strong> org.dom4j.Entity;
<a name="35" href="#35">35</a>  <strong>import</strong> org.dom4j.Node;
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>  <em>/**<em>*</em></em>
<a name="38" href="#38">38</a>  <em> * Reads a DOM4J {@link Document}, as well as other {@link Node}s, from a StAX</em>
<a name="39" href="#39">39</a>  <em> * {@link XMLEventReader}.</em>
<a name="40" href="#40">40</a>  <em> * </em>
<a name="41" href="#41">41</a>  <em> * @author Christian Niles</em>
<a name="42" href="#42">42</a>  <em> */</em>
<a name="43" href="#43">43</a>  <strong>public</strong> <strong>class</strong> <a href="../../../org/dom4j/io/STAXEventReader.html">STAXEventReader</a> {
<a name="44" href="#44">44</a>      <em>/**<em>* Reference to the <a href="../../../org/dom4j/DocumentFactory.html">DocumentFactory</a> used to build DOM4J nodes. */</em></em>
<a name="45" href="#45">45</a>      <strong>private</strong> <a href="../../../org/dom4j/DocumentFactory.html">DocumentFactory</a> factory;
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>      <em>/**<em>* A StAX input factory, used to construct streams from IO streams. */</em></em>
<a name="48" href="#48">48</a>      <strong>private</strong> XMLInputFactory inputFactory = XMLInputFactory.newInstance();
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>      <em>/**<em>*</em></em>
<a name="51" href="#51">51</a>  <em>     * Constructs a default &lt;code>STAXEventReader&lt;/code> instance with a</em>
<a name="52" href="#52">52</a>  <em>     * default {@link DocumentFactory}.</em>
<a name="53" href="#53">53</a>  <em>     */</em>
<a name="54" href="#54">54</a>      <strong>public</strong> <a href="../../../org/dom4j/io/STAXEventReader.html">STAXEventReader</a>() {
<a name="55" href="#55">55</a>          <strong>this</strong>.factory = DocumentFactory.getInstance();
<a name="56" href="#56">56</a>      }
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      <em>/**<em>*</em></em>
<a name="59" href="#59">59</a>  <em>     * Constructs a &lt;code>STAXEventReader&lt;/code> instance that uses the</em>
<a name="60" href="#60">60</a>  <em>     * specified {@link DocumentFactory}to construct DOM4J {@link Node}s.</em>
<a name="61" href="#61">61</a>  <em>     * </em>
<a name="62" href="#62">62</a>  <em>     * @param factory</em>
<a name="63" href="#63">63</a>  <em>     *            The DocumentFactory to use when constructing DOM4J nodes, or</em>
<a name="64" href="#64">64</a>  <em>     *            &lt;code>null&lt;/code> if a default should be used.</em>
<a name="65" href="#65">65</a>  <em>     */</em>
<a name="66" href="#66">66</a>      <strong>public</strong> <a href="../../../org/dom4j/io/STAXEventReader.html">STAXEventReader</a>(<a href="../../../org/dom4j/DocumentFactory.html">DocumentFactory</a> factory) {
<a name="67" href="#67">67</a>          <strong>if</strong> (factory != <strong>null</strong>) {
<a name="68" href="#68">68</a>              <strong>this</strong>.factory = factory;
<a name="69" href="#69">69</a>          } <strong>else</strong> {
<a name="70" href="#70">70</a>              <strong>this</strong>.factory = DocumentFactory.getInstance();
<a name="71" href="#71">71</a>          }
<a name="72" href="#72">72</a>      }
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>      <em>/**<em>*</em></em>
<a name="75" href="#75">75</a>  <em>     * Sets the DocumentFactory to be used when constructing DOM4J nodes.</em>
<a name="76" href="#76">76</a>  <em>     * </em>
<a name="77" href="#77">77</a>  <em>     * @param documentFactory</em>
<a name="78" href="#78">78</a>  <em>     *            The DocumentFactory to use when constructing DOM4J nodes, or</em>
<a name="79" href="#79">79</a>  <em>     *            &lt;code>null&lt;/code> if a default should be used.</em>
<a name="80" href="#80">80</a>  <em>     */</em>
<a name="81" href="#81">81</a>      <strong>public</strong> <strong>void</strong> setDocumentFactory(<a href="../../../org/dom4j/DocumentFactory.html">DocumentFactory</a> documentFactory) {
<a name="82" href="#82">82</a>          <strong>if</strong> (documentFactory != <strong>null</strong>) {
<a name="83" href="#83">83</a>              <strong>this</strong>.factory = documentFactory;
<a name="84" href="#84">84</a>          } <strong>else</strong> {
<a name="85" href="#85">85</a>              <strong>this</strong>.factory = DocumentFactory.getInstance();
<a name="86" href="#86">86</a>          }
<a name="87" href="#87">87</a>      }
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>      <em>/**<em>*</em></em>
<a name="90" href="#90">90</a>  <em>     * Constructs a StAX event stream from the provided I/O stream and reads a</em>
<a name="91" href="#91">91</a>  <em>     * DOM4J document from it.</em>
<a name="92" href="#92">92</a>  <em>     * </em>
<a name="93" href="#93">93</a>  <em>     * @param is</em>
<a name="94" href="#94">94</a>  <em>     *            The I/O stream from which the Document will be read.</em>
<a name="95" href="#95">95</a>  <em>     * </em>
<a name="96" href="#96">96</a>  <em>     * @return The Document that was read from the stream.</em>
<a name="97" href="#97">97</a>  <em>     * </em>
<a name="98" href="#98">98</a>  <em>     * @throws XMLStreamException</em>
<a name="99" href="#99">99</a>  <em>     *             If an error occurs reading content from the stream.</em>
<a name="100" href="#100">100</a> <em>     */</em>
<a name="101" href="#101">101</a>     <strong>public</strong> <a href="../../../org/dom4j/Document.html">Document</a> readDocument(InputStream is) throws XMLStreamException {
<a name="102" href="#102">102</a>         <strong>return</strong> readDocument(is, <strong>null</strong>);
<a name="103" href="#103">103</a>     }
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>     <em>/**<em>*</em></em>
<a name="106" href="#106">106</a> <em>     * Constructs a StAX event stream from the provided I/O character stream and</em>
<a name="107" href="#107">107</a> <em>     * reads a DOM4J document from it.</em>
<a name="108" href="#108">108</a> <em>     * </em>
<a name="109" href="#109">109</a> <em>     * @param reader</em>
<a name="110" href="#110">110</a> <em>     *            The character stream from which the Document will be read.</em>
<a name="111" href="#111">111</a> <em>     * </em>
<a name="112" href="#112">112</a> <em>     * @return The Document that was read from the stream.</em>
<a name="113" href="#113">113</a> <em>     * </em>
<a name="114" href="#114">114</a> <em>     * @throws XMLStreamException</em>
<a name="115" href="#115">115</a> <em>     *             If an error occurs reading content from the stream.</em>
<a name="116" href="#116">116</a> <em>     */</em>
<a name="117" href="#117">117</a>     <strong>public</strong> <a href="../../../org/dom4j/Document.html">Document</a> readDocument(Reader reader) throws XMLStreamException {
<a name="118" href="#118">118</a>         <strong>return</strong> readDocument(reader, <strong>null</strong>);
<a name="119" href="#119">119</a>     }
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a>     <em>/**<em>*</em></em>
<a name="122" href="#122">122</a> <em>     * Constructs a StAX event stream from the provided I/O stream and reads a</em>
<a name="123" href="#123">123</a> <em>     * DOM4J document from it.</em>
<a name="124" href="#124">124</a> <em>     * </em>
<a name="125" href="#125">125</a> <em>     * @param is</em>
<a name="126" href="#126">126</a> <em>     *            The I/O stream from which the Document will be read.</em>
<a name="127" href="#127">127</a> <em>     * @param systemId</em>
<a name="128" href="#128">128</a> <em>     *            A system id used to resolve entities.</em>
<a name="129" href="#129">129</a> <em>     * </em>
<a name="130" href="#130">130</a> <em>     * @return The Document that was read from the stream.</em>
<a name="131" href="#131">131</a> <em>     * </em>
<a name="132" href="#132">132</a> <em>     * @throws XMLStreamException</em>
<a name="133" href="#133">133</a> <em>     *             If an error occurs reading content from the stream.</em>
<a name="134" href="#134">134</a> <em>     */</em>
<a name="135" href="#135">135</a>     <strong>public</strong> <a href="../../../org/dom4j/Document.html">Document</a> readDocument(InputStream is, String systemId)
<a name="136" href="#136">136</a>             throws XMLStreamException {
<a name="137" href="#137">137</a>         XMLEventReader eventReader = inputFactory.createXMLEventReader(
<a name="138" href="#138">138</a>                 systemId, is);
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>         <strong>try</strong> {
<a name="141" href="#141">141</a>             <strong>return</strong> readDocument(eventReader);
<a name="142" href="#142">142</a>         } <strong>finally</strong> {
<a name="143" href="#143">143</a>             eventReader.close();
<a name="144" href="#144">144</a>         }
<a name="145" href="#145">145</a>     }
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>     <em>/**<em>*</em></em>
<a name="148" href="#148">148</a> <em>     * Constructs a StAX event stream from the provided I/O character stream and</em>
<a name="149" href="#149">149</a> <em>     * reads a DOM4J document from it.</em>
<a name="150" href="#150">150</a> <em>     * </em>
<a name="151" href="#151">151</a> <em>     * @param reader</em>
<a name="152" href="#152">152</a> <em>     *            The character stream from which the Document will be read.</em>
<a name="153" href="#153">153</a> <em>     * @param systemId</em>
<a name="154" href="#154">154</a> <em>     *            A system id used to resolve entities.</em>
<a name="155" href="#155">155</a> <em>     * </em>
<a name="156" href="#156">156</a> <em>     * @return The Document that was read from the stream.</em>
<a name="157" href="#157">157</a> <em>     * </em>
<a name="158" href="#158">158</a> <em>     * @throws XMLStreamException</em>
<a name="159" href="#159">159</a> <em>     *             If an error occurs reading content from the stream.</em>
<a name="160" href="#160">160</a> <em>     */</em>
<a name="161" href="#161">161</a>     <strong>public</strong> <a href="../../../org/dom4j/Document.html">Document</a> readDocument(Reader reader, String systemId)
<a name="162" href="#162">162</a>             throws XMLStreamException {
<a name="163" href="#163">163</a>         XMLEventReader eventReader = inputFactory.createXMLEventReader(
<a name="164" href="#164">164</a>                 systemId, reader);
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a>         <strong>try</strong> {
<a name="167" href="#167">167</a>             <strong>return</strong> readDocument(eventReader);
<a name="168" href="#168">168</a>         } <strong>finally</strong> {
<a name="169" href="#169">169</a>             eventReader.close();
<a name="170" href="#170">170</a>         }
<a name="171" href="#171">171</a>     }
<a name="172" href="#172">172</a> 
<a name="173" href="#173">173</a>     <em>/**<em>*</em></em>
<a name="174" href="#174">174</a> <em>     * Reads a {@link Node}from the event stream. If the next event is a</em>
<a name="175" href="#175">175</a> <em>     * {@link StartElement}, all events until the closing {@link EndElement}</em>
<a name="176" href="#176">176</a> <em>     * will be read, and the resulting nodes will be added to the returned</em>
<a name="177" href="#177">177</a> <em>     * {@link Element}.</em>
<a name="178" href="#178">178</a> <em>     * </em>
<a name="179" href="#179">179</a> <em>     * &lt;p></em>
<a name="180" href="#180">180</a> <em>     * &lt;strong>Pre-Conditions &lt;/strong>: The stream must be positioned before an</em>
<a name="181" href="#181">181</a> <em>     * event other than an &lt;code>EndElement&lt;/code>,&lt;code>EndDocument&lt;/code>,</em>
<a name="182" href="#182">182</a> <em>     * or any DTD-related events, which are not currently supported.</em>
<a name="183" href="#183">183</a> <em>     * &lt;/p></em>
<a name="184" href="#184">184</a> <em>     * </em>
<a name="185" href="#185">185</a> <em>     * @param reader</em>
<a name="186" href="#186">186</a> <em>     *            The reader from which events will be read.</em>
<a name="187" href="#187">187</a> <em>     * </em>
<a name="188" href="#188">188</a> <em>     * @return A DOM4J {@link Node}constructed from the read events.</em>
<a name="189" href="#189">189</a> <em>     * </em>
<a name="190" href="#190">190</a> <em>     * @throws XMLStreamException</em>
<a name="191" href="#191">191</a> <em>     *             If an error occurs reading from the stream, or the stream was</em>
<a name="192" href="#192">192</a> <em>     *             positioned before an unsupported event.</em>
<a name="193" href="#193">193</a> <em>     */</em>
<a name="194" href="#194">194</a>     <strong>public</strong> <a href="../../../org/dom4j/Node.html">Node</a> readNode(XMLEventReader reader) throws XMLStreamException {
<a name="195" href="#195">195</a>         XMLEvent event = reader.peek();
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a>         <strong>if</strong> (event.isStartElement()) {
<a name="198" href="#198">198</a>             <strong>return</strong> readElement(reader);
<a name="199" href="#199">199</a>         } <strong>else</strong> <strong>if</strong> (event.isCharacters()) {
<a name="200" href="#200">200</a>             <strong>return</strong> readCharacters(reader);
<a name="201" href="#201">201</a>         } <strong>else</strong> <strong>if</strong> (event.isStartDocument()) {
<a name="202" href="#202">202</a>             <strong>return</strong> readDocument(reader);
<a name="203" href="#203">203</a>         } <strong>else</strong> <strong>if</strong> (event.isProcessingInstruction()) {
<a name="204" href="#204">204</a>             <strong>return</strong> readProcessingInstruction(reader);
<a name="205" href="#205">205</a>         } <strong>else</strong> <strong>if</strong> (event.isEntityReference()) {
<a name="206" href="#206">206</a>             <strong>return</strong> readEntityReference(reader);
<a name="207" href="#207">207</a>         } <strong>else</strong> <strong>if</strong> (event.isAttribute()) {
<a name="208" href="#208">208</a>             <strong>return</strong> readAttribute(reader);
<a name="209" href="#209">209</a>         } <strong>else</strong> <strong>if</strong> (event.isNamespace()) {
<a name="210" href="#210">210</a>             <strong>return</strong> readNamespace(reader);
<a name="211" href="#211">211</a>         } <strong>else</strong> {
<a name="212" href="#212">212</a>             <strong>throw</strong> <strong>new</strong> XMLStreamException(<span class="string">"Unsupported event: "</span> + event);
<a name="213" href="#213">213</a>         }
<a name="214" href="#214">214</a>     }
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>     <em>/**<em>*</em></em>
<a name="217" href="#217">217</a> <em>     * Reads a DOM4J {@link Document}from the provided stream. The stream</em>
<a name="218" href="#218">218</a> <em>     * should be positioned at the start of a document, or before a {@link</em>
<a name="219" href="#219">219</a> <em>     * StartElement} event.</em>
<a name="220" href="#220">220</a> <em>     * </em>
<a name="221" href="#221">221</a> <em>     * @param reader</em>
<a name="222" href="#222">222</a> <em>     *            The event stream from which to read the {@link Document}.</em>
<a name="223" href="#223">223</a> <em>     * </em>
<a name="224" href="#224">224</a> <em>     * @return The {@link Document}that was read from the stream.</em>
<a name="225" href="#225">225</a> <em>     * </em>
<a name="226" href="#226">226</a> <em>     * @throws XMLStreamException</em>
<a name="227" href="#227">227</a> <em>     *             If an error occurs reading events from the stream.</em>
<a name="228" href="#228">228</a> <em>     */</em>
<a name="229" href="#229">229</a>     <strong>public</strong> <a href="../../../org/dom4j/Document.html">Document</a> readDocument(XMLEventReader reader)
<a name="230" href="#230">230</a>             throws XMLStreamException {
<a name="231" href="#231">231</a>         <a href="../../../org/dom4j/Document.html">Document</a> doc = <strong>null</strong>;
<a name="232" href="#232">232</a> 
<a name="233" href="#233">233</a>         <strong>while</strong> (reader.hasNext()) {
<a name="234" href="#234">234</a>             XMLEvent nextEvent = reader.peek();
<a name="235" href="#235">235</a>             <strong>int</strong> type = nextEvent.getEventType();
<a name="236" href="#236">236</a> 
<a name="237" href="#237">237</a>             <strong>switch</strong> (type) {
<a name="238" href="#238">238</a>                 <strong>case</strong> XMLStreamConstants.START_DOCUMENT:
<a name="239" href="#239">239</a> 
<a name="240" href="#240">240</a>                     StartDocument event = (StartDocument) reader.nextEvent();
<a name="241" href="#241">241</a> 
<a name="242" href="#242">242</a>                     <strong>if</strong> (doc == <strong>null</strong>) {
<a name="243" href="#243">243</a>                         <em class="comment">// create document</em>
<a name="244" href="#244">244</a>                         <strong>if</strong> (event.encodingSet()) {
<a name="245" href="#245">245</a>                             String encodingScheme = event
<a name="246" href="#246">246</a>                                     .getCharacterEncodingScheme();
<a name="247" href="#247">247</a>                             doc = factory.createDocument(encodingScheme);
<a name="248" href="#248">248</a>                         } <strong>else</strong> {
<a name="249" href="#249">249</a>                             doc = factory.createDocument();
<a name="250" href="#250">250</a>                         }
<a name="251" href="#251">251</a>                     } <strong>else</strong> {
<a name="252" href="#252">252</a>                         <em class="comment">// duplicate or misplaced xml declaration</em>
<a name="253" href="#253">253</a>                         String msg = <span class="string">"Unexpected StartDocument event"</span>;
<a name="254" href="#254">254</a>                         <strong>throw</strong> <strong>new</strong> XMLStreamException(msg, event.getLocation());
<a name="255" href="#255">255</a>                     }
<a name="256" href="#256">256</a> 
<a name="257" href="#257">257</a>                     <strong>break</strong>;
<a name="258" href="#258">258</a> 
<a name="259" href="#259">259</a>                 <strong>case</strong> XMLStreamConstants.END_DOCUMENT:
<a name="260" href="#260">260</a>                 <strong>case</strong> XMLStreamConstants.SPACE:
<a name="261" href="#261">261</a>                 <strong>case</strong> XMLStreamConstants.CHARACTERS:
<a name="262" href="#262">262</a> 
<a name="263" href="#263">263</a>                     <em class="comment">// skip end document and space outside the root element</em>
<a name="264" href="#264">264</a>                     reader.nextEvent();
<a name="265" href="#265">265</a> 
<a name="266" href="#266">266</a>                     <strong>break</strong>;
<a name="267" href="#267">267</a> 
<a name="268" href="#268">268</a>                 <strong>default</strong>:
<a name="269" href="#269">269</a> 
<a name="270" href="#270">270</a>                     <strong>if</strong> (doc == <strong>null</strong>) {
<a name="271" href="#271">271</a>                         <em class="comment">// create document</em>
<a name="272" href="#272">272</a>                         doc = factory.createDocument();
<a name="273" href="#273">273</a>                     }
<a name="274" href="#274">274</a> 
<a name="275" href="#275">275</a>                     <a href="../../../org/dom4j/Node.html">Node</a> n = readNode(reader);
<a name="276" href="#276">276</a>                     doc.add(n);
<a name="277" href="#277">277</a>             }
<a name="278" href="#278">278</a>         }
<a name="279" href="#279">279</a> 
<a name="280" href="#280">280</a>         <strong>return</strong> doc;
<a name="281" href="#281">281</a>     }
<a name="282" href="#282">282</a> 
<a name="283" href="#283">283</a>     <em>/**<em>*</em></em>
<a name="284" href="#284">284</a> <em>     * Reads a DOM4J Element from the provided event stream. The stream must be</em>
<a name="285" href="#285">285</a> <em>     * positioned before an {@link StartElement}event. In addition to the</em>
<a name="286" href="#286">286</a> <em>     * initial start event, all events up to and including the closing {@link</em>
<a name="287" href="#287">287</a> <em>     * EndElement} will be read, and included with the returned element.</em>
<a name="288" href="#288">288</a> <em>     * </em>
<a name="289" href="#289">289</a> <em>     * @param eventReader</em>
<a name="290" href="#290">290</a> <em>     *            The event stream from which to read the Element.</em>
<a name="291" href="#291">291</a> <em>     * </em>
<a name="292" href="#292">292</a> <em>     * @return The Element that was read from the stream.</em>
<a name="293" href="#293">293</a> <em>     * </em>
<a name="294" href="#294">294</a> <em>     * @throws XMLStreamException</em>
<a name="295" href="#295">295</a> <em>     *             If an error occured reading events from the stream, or the</em>
<a name="296" href="#296">296</a> <em>     *             stream was not positioned before a {@linkStartElement}event.</em>
<a name="297" href="#297">297</a> <em>     */</em>
<a name="298" href="#298">298</a>     <strong>public</strong> <a href="../../../org/dom4j/Element.html">Element</a> readElement(XMLEventReader eventReader)
<a name="299" href="#299">299</a>             throws XMLStreamException {
<a name="300" href="#300">300</a>         XMLEvent event = eventReader.peek();
<a name="301" href="#301">301</a> 
<a name="302" href="#302">302</a>         <strong>if</strong> (event.isStartElement()) {
<a name="303" href="#303">303</a>             <em class="comment">// advance the reader and get the StartElement event</em>
<a name="304" href="#304">304</a>             StartElement startTag = eventReader.nextEvent().asStartElement();
<a name="305" href="#305">305</a>             <a href="../../../org/dom4j/Element.html">Element</a> elem = createElement(startTag);
<a name="306" href="#306">306</a> 
<a name="307" href="#307">307</a>             <em class="comment">// read element content</em>
<a name="308" href="#308">308</a>             <strong>while</strong> (<strong>true</strong>) {
<a name="309" href="#309">309</a>                 <strong>if</strong> (!eventReader.hasNext()) {
<a name="310" href="#310">310</a>                     String msg = <span class="string">"Unexpected end of stream while reading"</span>
<a name="311" href="#311">311</a>                             + <span class="string">" element content"</span>;
<a name="312" href="#312">312</a>                     <strong>throw</strong> <strong>new</strong> XMLStreamException(msg);
<a name="313" href="#313">313</a>                 }
<a name="314" href="#314">314</a> 
<a name="315" href="#315">315</a>                 XMLEvent nextEvent = eventReader.peek();
<a name="316" href="#316">316</a> 
<a name="317" href="#317">317</a>                 <strong>if</strong> (nextEvent.isEndElement()) {
<a name="318" href="#318">318</a>                     EndElement endElem = eventReader.nextEvent().asEndElement();
<a name="319" href="#319">319</a> 
<a name="320" href="#320">320</a>                     <strong>if</strong> (!endElem.getName().equals(startTag.getName())) {
<a name="321" href="#321">321</a>                         <strong>throw</strong> <strong>new</strong> XMLStreamException(<span class="string">"Expected "</span>
<a name="322" href="#322">322</a>                                 + startTag.getName() + <span class="string">" end-tag, but found"</span>
<a name="323" href="#323">323</a>                                 + endElem.getName());
<a name="324" href="#324">324</a>                     }
<a name="325" href="#325">325</a> 
<a name="326" href="#326">326</a>                     <strong>break</strong>;
<a name="327" href="#327">327</a>                 }
<a name="328" href="#328">328</a> 
<a name="329" href="#329">329</a>                 <a href="../../../org/dom4j/Node.html">Node</a> child = readNode(eventReader);
<a name="330" href="#330">330</a>                 elem.add(child);
<a name="331" href="#331">331</a>             }
<a name="332" href="#332">332</a> 
<a name="333" href="#333">333</a>             <strong>return</strong> elem;
<a name="334" href="#334">334</a>         } <strong>else</strong> {
<a name="335" href="#335">335</a>             <strong>throw</strong> <strong>new</strong> XMLStreamException(<span class="string">"Expected Element event, found: "</span>
<a name="336" href="#336">336</a>                     + event);
<a name="337" href="#337">337</a>         }
<a name="338" href="#338">338</a>     }
<a name="339" href="#339">339</a> 
<a name="340" href="#340">340</a>     <em>/**<em>*</em></em>
<a name="341" href="#341">341</a> <em>     * Constructs a DOM4J Attribute from the provided event stream. The stream</em>
<a name="342" href="#342">342</a> <em>     * must be positioned before an {@link Attribute}event.</em>
<a name="343" href="#343">343</a> <em>     * </em>
<a name="344" href="#344">344</a> <em>     * @param reader</em>
<a name="345" href="#345">345</a> <em>     *            The event stream from which to read the Attribute.</em>
<a name="346" href="#346">346</a> <em>     * </em>
<a name="347" href="#347">347</a> <em>     * @return The Attribute that was read from the stream.</em>
<a name="348" href="#348">348</a> <em>     * </em>
<a name="349" href="#349">349</a> <em>     * @throws XMLStreamException</em>
<a name="350" href="#350">350</a> <em>     *             If an error occured reading events from the stream, or the</em>
<a name="351" href="#351">351</a> <em>     *             stream was not positioned before an {@linkAttribute}event.</em>
<a name="352" href="#352">352</a> <em>     */</em>
<a name="353" href="#353">353</a>     <strong>public</strong> org.dom4j.Attribute readAttribute(XMLEventReader reader)
<a name="354" href="#354">354</a>             throws XMLStreamException {
<a name="355" href="#355">355</a>         XMLEvent event = reader.peek();
<a name="356" href="#356">356</a> 
<a name="357" href="#357">357</a>         <strong>if</strong> (event.isAttribute()) {
<a name="358" href="#358">358</a>             <a href="../../../org/dom4j/Attribute.html">Attribute</a> attr = (Attribute) reader.nextEvent();
<a name="359" href="#359">359</a> 
<a name="360" href="#360">360</a>             <strong>return</strong> createAttribute(<strong>null</strong>, attr);
<a name="361" href="#361">361</a>         } <strong>else</strong> {
<a name="362" href="#362">362</a>             <strong>throw</strong> <strong>new</strong> XMLStreamException(<span class="string">"Expected Attribute event, found: "</span>
<a name="363" href="#363">363</a>                     + event);
<a name="364" href="#364">364</a>         }
<a name="365" href="#365">365</a>     }
<a name="366" href="#366">366</a> 
<a name="367" href="#367">367</a>     <em>/**<em>*</em></em>
<a name="368" href="#368">368</a> <em>     * Constructs a DOM4J Namespace from the provided event stream. The stream</em>
<a name="369" href="#369">369</a> <em>     * must be positioned before a {@link Namespace}event.</em>
<a name="370" href="#370">370</a> <em>     * </em>
<a name="371" href="#371">371</a> <em>     * @param reader</em>
<a name="372" href="#372">372</a> <em>     *            The event stream from which to read the Namespace.</em>
<a name="373" href="#373">373</a> <em>     * </em>
<a name="374" href="#374">374</a> <em>     * @return The Namespace that was read from the stream.</em>
<a name="375" href="#375">375</a> <em>     * </em>
<a name="376" href="#376">376</a> <em>     * @throws XMLStreamException</em>
<a name="377" href="#377">377</a> <em>     *             If an error occured reading events from the stream, or the</em>
<a name="378" href="#378">378</a> <em>     *             stream was not positioned before a {@linkNamespace}event.</em>
<a name="379" href="#379">379</a> <em>     */</em>
<a name="380" href="#380">380</a>     <strong>public</strong> org.dom4j.Namespace readNamespace(XMLEventReader reader)
<a name="381" href="#381">381</a>             throws XMLStreamException {
<a name="382" href="#382">382</a>         XMLEvent event = reader.peek();
<a name="383" href="#383">383</a> 
<a name="384" href="#384">384</a>         <strong>if</strong> (event.isNamespace()) {
<a name="385" href="#385">385</a>             <a href="../../../org/dom4j/Namespace.html">Namespace</a> ns = (Namespace) reader.nextEvent();
<a name="386" href="#386">386</a> 
<a name="387" href="#387">387</a>             <strong>return</strong> createNamespace(ns);
<a name="388" href="#388">388</a>         } <strong>else</strong> {
<a name="389" href="#389">389</a>             <strong>throw</strong> <strong>new</strong> XMLStreamException(<span class="string">"Expected Namespace event, found: "</span>
<a name="390" href="#390">390</a>                     + event);
<a name="391" href="#391">391</a>         }
<a name="392" href="#392">392</a>     }
<a name="393" href="#393">393</a> 
<a name="394" href="#394">394</a>     <em>/**<em>*</em></em>
<a name="395" href="#395">395</a> <em>     * Constructs a DOM4J Text or CDATA section from the provided event stream.</em>
<a name="396" href="#396">396</a> <em>     * The stream must be positioned before a {@link Characters}event.</em>
<a name="397" href="#397">397</a> <em>     * </em>
<a name="398" href="#398">398</a> <em>     * @param reader</em>
<a name="399" href="#399">399</a> <em>     *            The event stream from which to read the Text or CDATA.</em>
<a name="400" href="#400">400</a> <em>     * </em>
<a name="401" href="#401">401</a> <em>     * @return The Text or CDATA that was read from the stream.</em>
<a name="402" href="#402">402</a> <em>     * </em>
<a name="403" href="#403">403</a> <em>     * @throws XMLStreamException</em>
<a name="404" href="#404">404</a> <em>     *             If an error occured reading events from the stream, or the</em>
<a name="405" href="#405">405</a> <em>     *             stream was not positioned before a {@linkCharacters}event.</em>
<a name="406" href="#406">406</a> <em>     */</em>
<a name="407" href="#407">407</a>     <strong>public</strong> <a href="../../../org/dom4j/CharacterData.html">CharacterData</a> readCharacters(XMLEventReader reader)
<a name="408" href="#408">408</a>             throws XMLStreamException {
<a name="409" href="#409">409</a>         XMLEvent event = reader.peek();
<a name="410" href="#410">410</a> 
<a name="411" href="#411">411</a>         <strong>if</strong> (event.isCharacters()) {
<a name="412" href="#412">412</a>             Characters characters = reader.nextEvent().asCharacters();
<a name="413" href="#413">413</a> 
<a name="414" href="#414">414</a>             <strong>return</strong> createCharacterData(characters);
<a name="415" href="#415">415</a>         } <strong>else</strong> {
<a name="416" href="#416">416</a>             <strong>throw</strong> <strong>new</strong> XMLStreamException(<span class="string">"Expected Characters event, found: "</span>
<a name="417" href="#417">417</a>                     + event);
<a name="418" href="#418">418</a>         }
<a name="419" href="#419">419</a>     }
<a name="420" href="#420">420</a> 
<a name="421" href="#421">421</a>     <em>/**<em>*</em></em>
<a name="422" href="#422">422</a> <em>     * Constructs a DOM4J Comment from the provided event stream. The stream</em>
<a name="423" href="#423">423</a> <em>     * must be positioned before a {@link Comment}event.</em>
<a name="424" href="#424">424</a> <em>     * </em>
<a name="425" href="#425">425</a> <em>     * @param reader</em>
<a name="426" href="#426">426</a> <em>     *            The event stream from which to read the Comment.</em>
<a name="427" href="#427">427</a> <em>     * </em>
<a name="428" href="#428">428</a> <em>     * @return The Comment that was read from the stream.</em>
<a name="429" href="#429">429</a> <em>     * </em>
<a name="430" href="#430">430</a> <em>     * @throws XMLStreamException</em>
<a name="431" href="#431">431</a> <em>     *             If an error occured reading events from the stream, or the</em>
<a name="432" href="#432">432</a> <em>     *             stream was not positioned before a {@linkComment}event.</em>
<a name="433" href="#433">433</a> <em>     */</em>
<a name="434" href="#434">434</a>     <strong>public</strong> org.dom4j.Comment readComment(XMLEventReader reader)
<a name="435" href="#435">435</a>             throws XMLStreamException {
<a name="436" href="#436">436</a>         XMLEvent event = reader.peek();
<a name="437" href="#437">437</a> 
<a name="438" href="#438">438</a>         <strong>if</strong> (event instanceof Comment) {
<a name="439" href="#439">439</a>             <strong>return</strong> createComment((Comment) reader.nextEvent());
<a name="440" href="#440">440</a>         } <strong>else</strong> {
<a name="441" href="#441">441</a>             <strong>throw</strong> <strong>new</strong> XMLStreamException(<span class="string">"Expected Comment event, found: "</span>
<a name="442" href="#442">442</a>                     + event);
<a name="443" href="#443">443</a>         }
<a name="444" href="#444">444</a>     }
<a name="445" href="#445">445</a> 
<a name="446" href="#446">446</a>     <em>/**<em>*</em></em>
<a name="447" href="#447">447</a> <em>     * Constructs a DOM4J Entity from the provided event stream. The stream must</em>
<a name="448" href="#448">448</a> <em>     * be positioned before an {@link EntityReference}event.</em>
<a name="449" href="#449">449</a> <em>     * </em>
<a name="450" href="#450">450</a> <em>     * @param reader</em>
<a name="451" href="#451">451</a> <em>     *            The event stream from which to read the {@link</em>
<a name="452" href="#452">452</a> <em>     *            EntityReference}.</em>
<a name="453" href="#453">453</a> <em>     * </em>
<a name="454" href="#454">454</a> <em>     * @return The {@link org.dom4j.Entity}that was read from the stream.</em>
<a name="455" href="#455">455</a> <em>     * </em>
<a name="456" href="#456">456</a> <em>     * @throws XMLStreamException</em>
<a name="457" href="#457">457</a> <em>     *             If an error occured reading events from the stream, or the</em>
<a name="458" href="#458">458</a> <em>     *             stream was not positioned before an {@linkEntityReference}</em>
<a name="459" href="#459">459</a> <em>     *             event.</em>
<a name="460" href="#460">460</a> <em>     */</em>
<a name="461" href="#461">461</a>     <strong>public</strong> <a href="../../../org/dom4j/Entity.html">Entity</a> readEntityReference(XMLEventReader reader)
<a name="462" href="#462">462</a>             throws XMLStreamException {
<a name="463" href="#463">463</a>         XMLEvent event = reader.peek();
<a name="464" href="#464">464</a> 
<a name="465" href="#465">465</a>         <strong>if</strong> (event.isEntityReference()) {
<a name="466" href="#466">466</a>             EntityReference entityRef = (EntityReference) reader.nextEvent();
<a name="467" href="#467">467</a> 
<a name="468" href="#468">468</a>             <strong>return</strong> createEntity(entityRef);
<a name="469" href="#469">469</a>         } <strong>else</strong> {
<a name="470" href="#470">470</a>             <strong>throw</strong> <strong>new</strong> XMLStreamException(<span class="string">"Expected EntityRef event, found: "</span>
<a name="471" href="#471">471</a>                     + event);
<a name="472" href="#472">472</a>         }
<a name="473" href="#473">473</a>     }
<a name="474" href="#474">474</a> 
<a name="475" href="#475">475</a>     <em>/**<em>*</em></em>
<a name="476" href="#476">476</a> <em>     * Constructs a DOM4J ProcessingInstruction from the provided event stream.</em>
<a name="477" href="#477">477</a> <em>     * The stream must be positioned before a {@link ProcessingInstruction}</em>
<a name="478" href="#478">478</a> <em>     * event.</em>
<a name="479" href="#479">479</a> <em>     * </em>
<a name="480" href="#480">480</a> <em>     * @param reader</em>
<a name="481" href="#481">481</a> <em>     *            The event stream from which to read the ProcessingInstruction.</em>
<a name="482" href="#482">482</a> <em>     * </em>
<a name="483" href="#483">483</a> <em>     * @return The ProcessingInstruction that was read from the stream.</em>
<a name="484" href="#484">484</a> <em>     * </em>
<a name="485" href="#485">485</a> <em>     * @throws XMLStreamException</em>
<a name="486" href="#486">486</a> <em>     *             If an error occured reading events from the stream, or the</em>
<a name="487" href="#487">487</a> <em>     *             stream was not positioned before a {@link</em>
<a name="488" href="#488">488</a> <em>     *             ProcessingInstruction} event.</em>
<a name="489" href="#489">489</a> <em>     */</em>
<a name="490" href="#490">490</a>     <strong>public</strong> org.dom4j.ProcessingInstruction readProcessingInstruction(
<a name="491" href="#491">491</a>             XMLEventReader reader) throws XMLStreamException {
<a name="492" href="#492">492</a>         XMLEvent event = reader.peek();
<a name="493" href="#493">493</a> 
<a name="494" href="#494">494</a>         <strong>if</strong> (event.isProcessingInstruction()) {
<a name="495" href="#495">495</a>             <a href="../../../org/dom4j/ProcessingInstruction.html">ProcessingInstruction</a> pi = (ProcessingInstruction) reader
<a name="496" href="#496">496</a>                     .nextEvent();
<a name="497" href="#497">497</a> 
<a name="498" href="#498">498</a>             <strong>return</strong> createProcessingInstruction(pi);
<a name="499" href="#499">499</a>         } <strong>else</strong> {
<a name="500" href="#500">500</a>             <strong>throw</strong> <strong>new</strong> XMLStreamException(<span class="string">"Expected PI event, found: "</span> + event);
<a name="501" href="#501">501</a>         }
<a name="502" href="#502">502</a>     }
<a name="503" href="#503">503</a> 
<a name="504" href="#504">504</a>     <em>/**<em>*</em></em>
<a name="505" href="#505">505</a> <em>     * Constructs a new DOM4J Element from the provided StartElement event. All</em>
<a name="506" href="#506">506</a> <em>     * attributes and namespaces will be added to the returned element.</em>
<a name="507" href="#507">507</a> <em>     * </em>
<a name="508" href="#508">508</a> <em>     * @param startEvent</em>
<a name="509" href="#509">509</a> <em>     *            The StartElement event from which to construct the new DOM4J</em>
<a name="510" href="#510">510</a> <em>     *            Element.</em>
<a name="511" href="#511">511</a> <em>     * </em>
<a name="512" href="#512">512</a> <em>     * @return The Element constructed from the provided StartElement event.</em>
<a name="513" href="#513">513</a> <em>     */</em>
<a name="514" href="#514">514</a>     <strong>public</strong> <a href="../../../org/dom4j/Element.html">Element</a> createElement(StartElement startEvent) {
<a name="515" href="#515">515</a>         <a href="../../../org/dom4j/QName.html">QName</a> qname = startEvent.getName();
<a name="516" href="#516">516</a>         org.dom4j.QName elemName = createQName(qname);
<a name="517" href="#517">517</a> 
<a name="518" href="#518">518</a>         <a href="../../../org/dom4j/Element.html">Element</a> elem = factory.createElement(elemName);
<a name="519" href="#519">519</a> 
<a name="520" href="#520">520</a>         <em class="comment">// create attributes</em>
<a name="521" href="#521">521</a>         <strong>for</strong> (Iterator i = startEvent.getAttributes(); i.hasNext();) {
<a name="522" href="#522">522</a>             <a href="../../../org/dom4j/Attribute.html">Attribute</a> attr = (Attribute) i.next();
<a name="523" href="#523">523</a>             elem.addAttribute(createQName(attr.getName()), attr.getValue());
<a name="524" href="#524">524</a>         }
<a name="525" href="#525">525</a> 
<a name="526" href="#526">526</a>         <em class="comment">// create namespaces</em>
<a name="527" href="#527">527</a>         <strong>for</strong> (Iterator i = startEvent.getNamespaces(); i.hasNext();) {
<a name="528" href="#528">528</a>             <a href="../../../org/dom4j/Namespace.html">Namespace</a> ns = (Namespace) i.next();
<a name="529" href="#529">529</a>             elem.addNamespace(ns.getPrefix(), ns.getNamespaceURI());
<a name="530" href="#530">530</a>         }
<a name="531" href="#531">531</a> 
<a name="532" href="#532">532</a>         <strong>return</strong> elem;
<a name="533" href="#533">533</a>     }
<a name="534" href="#534">534</a> 
<a name="535" href="#535">535</a>     <em>/**<em>*</em></em>
<a name="536" href="#536">536</a> <em>     * Constructs a new DOM4J Attribute from the provided StAX Attribute event.</em>
<a name="537" href="#537">537</a> <em>     * </em>
<a name="538" href="#538">538</a> <em>     * @param elem</em>
<a name="539" href="#539">539</a> <em>     *            DOCUMENT ME!</em>
<a name="540" href="#540">540</a> <em>     * @param attr</em>
<a name="541" href="#541">541</a> <em>     *            The Attribute event from which to construct the new DOM4J</em>
<a name="542" href="#542">542</a> <em>     *            Attribute.</em>
<a name="543" href="#543">543</a> <em>     * </em>
<a name="544" href="#544">544</a> <em>     * @return The Attribute constructed from the provided Attribute event.</em>
<a name="545" href="#545">545</a> <em>     */</em>
<a name="546" href="#546">546</a>     <strong>public</strong> org.dom4j.Attribute createAttribute(<a href="../../../org/dom4j/Element.html">Element</a> elem, <a href="../../../org/dom4j/Attribute.html">Attribute</a> attr) {
<a name="547" href="#547">547</a>         <strong>return</strong> factory.createAttribute(elem, createQName(attr.getName()), attr
<a name="548" href="#548">548</a>                 .getValue());
<a name="549" href="#549">549</a>     }
<a name="550" href="#550">550</a> 
<a name="551" href="#551">551</a>     <em>/**<em>*</em></em>
<a name="552" href="#552">552</a> <em>     * Constructs a new DOM4J Namespace from the provided StAX Namespace event.</em>
<a name="553" href="#553">553</a> <em>     * </em>
<a name="554" href="#554">554</a> <em>     * @param ns</em>
<a name="555" href="#555">555</a> <em>     *            The Namespace event from which to construct the new DOM4J</em>
<a name="556" href="#556">556</a> <em>     *            Namespace.</em>
<a name="557" href="#557">557</a> <em>     * </em>
<a name="558" href="#558">558</a> <em>     * @return The Namespace constructed from the provided Namespace event.</em>
<a name="559" href="#559">559</a> <em>     */</em>
<a name="560" href="#560">560</a>     <strong>public</strong> org.dom4j.Namespace createNamespace(<a href="../../../org/dom4j/Namespace.html">Namespace</a> ns) {
<a name="561" href="#561">561</a>         <strong>return</strong> factory.createNamespace(ns.getPrefix(), ns.getNamespaceURI());
<a name="562" href="#562">562</a>     }
<a name="563" href="#563">563</a> 
<a name="564" href="#564">564</a>     <em>/**<em>*</em></em>
<a name="565" href="#565">565</a> <em>     * Constructs a new DOM4J Text or CDATA object from the provided Characters</em>
<a name="566" href="#566">566</a> <em>     * event.</em>
<a name="567" href="#567">567</a> <em>     * </em>
<a name="568" href="#568">568</a> <em>     * @param characters</em>
<a name="569" href="#569">569</a> <em>     *            The Characters event from which to construct the new DOM4J</em>
<a name="570" href="#570">570</a> <em>     *            Text or CDATA object.</em>
<a name="571" href="#571">571</a> <em>     * </em>
<a name="572" href="#572">572</a> <em>     * @return The Text or CDATA object constructed from the provided Characters</em>
<a name="573" href="#573">573</a> <em>     *         event.</em>
<a name="574" href="#574">574</a> <em>     */</em>
<a name="575" href="#575">575</a>     <strong>public</strong> <a href="../../../org/dom4j/CharacterData.html">CharacterData</a> createCharacterData(Characters characters) {
<a name="576" href="#576">576</a>         String data = characters.getData();
<a name="577" href="#577">577</a> 
<a name="578" href="#578">578</a>         <strong>if</strong> (characters.isCData()) {
<a name="579" href="#579">579</a>             <strong>return</strong> factory.createCDATA(data);
<a name="580" href="#580">580</a>         } <strong>else</strong> {
<a name="581" href="#581">581</a>             <strong>return</strong> factory.createText(data);
<a name="582" href="#582">582</a>         }
<a name="583" href="#583">583</a>     }
<a name="584" href="#584">584</a> 
<a name="585" href="#585">585</a>     <em>/**<em>*</em></em>
<a name="586" href="#586">586</a> <em>     * Constructs a new DOM4J Comment from the provided StAX Comment event.</em>
<a name="587" href="#587">587</a> <em>     * </em>
<a name="588" href="#588">588</a> <em>     * @param comment</em>
<a name="589" href="#589">589</a> <em>     *            The Comment event from which to construct the new DOM4J</em>
<a name="590" href="#590">590</a> <em>     *            Comment.</em>
<a name="591" href="#591">591</a> <em>     * </em>
<a name="592" href="#592">592</a> <em>     * @return The Comment constructed from the provided Comment event.</em>
<a name="593" href="#593">593</a> <em>     */</em>
<a name="594" href="#594">594</a>     <strong>public</strong> org.dom4j.Comment createComment(<a href="../../../org/dom4j/Comment.html">Comment</a> comment) {
<a name="595" href="#595">595</a>         <strong>return</strong> factory.createComment(comment.getText());
<a name="596" href="#596">596</a>     }
<a name="597" href="#597">597</a> 
<a name="598" href="#598">598</a>     <em>/**<em>*</em></em>
<a name="599" href="#599">599</a> <em>     * Constructs a new DOM4J Entity from the provided StAX EntityReference</em>
<a name="600" href="#600">600</a> <em>     * event.</em>
<a name="601" href="#601">601</a> <em>     * </em>
<a name="602" href="#602">602</a> <em>     * @param entityRef</em>
<a name="603" href="#603">603</a> <em>     *            The EntityReference event from which to construct the new</em>
<a name="604" href="#604">604</a> <em>     *            DOM4J Entity.</em>
<a name="605" href="#605">605</a> <em>     * </em>
<a name="606" href="#606">606</a> <em>     * @return The Entity constructed from the provided EntityReference event.</em>
<a name="607" href="#607">607</a> <em>     */</em>
<a name="608" href="#608">608</a>     <strong>public</strong> org.dom4j.Entity createEntity(EntityReference entityRef) {
<a name="609" href="#609">609</a>         <strong>return</strong> factory.createEntity(entityRef.getName(), entityRef
<a name="610" href="#610">610</a>                 .getDeclaration().getReplacementText());
<a name="611" href="#611">611</a>     }
<a name="612" href="#612">612</a> 
<a name="613" href="#613">613</a>     <em>/**<em>*</em></em>
<a name="614" href="#614">614</a> <em>     * Constructs a new DOM4J ProcessingInstruction from the provided StAX</em>
<a name="615" href="#615">615</a> <em>     * ProcessingInstruction event.</em>
<a name="616" href="#616">616</a> <em>     * </em>
<a name="617" href="#617">617</a> <em>     * @param pi</em>
<a name="618" href="#618">618</a> <em>     *            The ProcessingInstruction event from which to construct the</em>
<a name="619" href="#619">619</a> <em>     *            new DOM4J ProcessingInstruction.</em>
<a name="620" href="#620">620</a> <em>     * </em>
<a name="621" href="#621">621</a> <em>     * @return The ProcessingInstruction constructed from the provided</em>
<a name="622" href="#622">622</a> <em>     *         ProcessingInstruction event.</em>
<a name="623" href="#623">623</a> <em>     */</em>
<a name="624" href="#624">624</a>     <strong>public</strong> org.dom4j.ProcessingInstruction createProcessingInstruction(
<a name="625" href="#625">625</a>             <a href="../../../org/dom4j/ProcessingInstruction.html">ProcessingInstruction</a> pi) {
<a name="626" href="#626">626</a>         <strong>return</strong> factory
<a name="627" href="#627">627</a>                 .createProcessingInstruction(pi.getTarget(), pi.getData());
<a name="628" href="#628">628</a>     }
<a name="629" href="#629">629</a> 
<a name="630" href="#630">630</a>     <em>/**<em>*</em></em>
<a name="631" href="#631">631</a> <em>     * Constructs a new DOM4J QName from the provided JAXP QName.</em>
<a name="632" href="#632">632</a> <em>     * </em>
<a name="633" href="#633">633</a> <em>     * @param qname</em>
<a name="634" href="#634">634</a> <em>     *            The JAXP QName from which to create a DOM4J QName.</em>
<a name="635" href="#635">635</a> <em>     * </em>
<a name="636" href="#636">636</a> <em>     * @return The newly constructed DOM4J QName.</em>
<a name="637" href="#637">637</a> <em>     */</em>
<a name="638" href="#638">638</a>     <strong>public</strong> org.dom4j.QName createQName(<a href="../../../org/dom4j/QName.html">QName</a> qname) {
<a name="639" href="#639">639</a>         <strong>return</strong> factory.createQName(qname.getLocalPart(), qname.getPrefix(),
<a name="640" href="#640">640</a>                 qname.getNamespaceURI());
<a name="641" href="#641">641</a>     }
<a name="642" href="#642">642</a> }
<a name="643" href="#643">643</a> 
<a name="644" href="#644">644</a> <em class="comment">/*</em>
<a name="645" href="#645">645</a> <em class="comment"> * Redistribution and use of this software and associated documentation</em>
<a name="646" href="#646">646</a> <em class="comment"> * ("Software"), with or without modification, are permitted provided that the</em>
<a name="647" href="#647">647</a> <em class="comment"> * following conditions are met:</em>
<a name="648" href="#648">648</a> <em class="comment"> * </em>
<a name="649" href="#649">649</a> <em class="comment"> * 1. Redistributions of source code must retain copyright statements and</em>
<a name="650" href="#650">650</a> <em class="comment"> * notices. Redistributions must also contain a copy of this document.</em>
<a name="651" href="#651">651</a> <em class="comment"> * </em>
<a name="652" href="#652">652</a> <em class="comment"> * 2. Redistributions in binary form must reproduce the above copyright notice,</em>
<a name="653" href="#653">653</a> <em class="comment"> * this list of conditions and the following disclaimer in the documentation</em>
<a name="654" href="#654">654</a> <em class="comment"> * and/or other materials provided with the distribution.</em>
<a name="655" href="#655">655</a> <em class="comment"> * </em>
<a name="656" href="#656">656</a> <em class="comment"> * 3. The name "DOM4J" must not be used to endorse or promote products derived</em>
<a name="657" href="#657">657</a> <em class="comment"> * from this Software without prior written permission of MetaStuff, Ltd. For</em>
<a name="658" href="#658">658</a> <em class="comment"> * written permission, please contact dom4j-info@metastuff.com.</em>
<a name="659" href="#659">659</a> <em class="comment"> * </em>
<a name="660" href="#660">660</a> <em class="comment"> * 4. Products derived from this Software may not be called "DOM4J" nor may</em>
<a name="661" href="#661">661</a> <em class="comment"> * "DOM4J" appear in their names without prior written permission of MetaStuff,</em>
<a name="662" href="#662">662</a> <em class="comment"> * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd.</em>
<a name="663" href="#663">663</a> <em class="comment"> * </em>
<a name="664" href="#664">664</a> <em class="comment"> * 5. Due credit should be given to the DOM4J Project - <a href="http://www.dom4j.org" target="alexandria_uri">http://www.dom4j.org</a></em>
<a name="665" href="#665">665</a> <em class="comment"> * </em>
<a name="666" href="#666">666</a> <em class="comment"> * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND</em>
<a name="667" href="#667">667</a> <em class="comment"> * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</em>
<a name="668" href="#668">668</a> <em class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</em>
<a name="669" href="#669">669</a> <em class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE</em>
<a name="670" href="#670">670</a> <em class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</em>
<a name="671" href="#671">671</a> <em class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</em>
<a name="672" href="#672">672</a> <em class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</em>
<a name="673" href="#673">673</a> <em class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</em>
<a name="674" href="#674">674</a> <em class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</em>
<a name="675" href="#675">675</a> <em class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</em>
<a name="676" href="#676">676</a> <em class="comment"> * POSSIBILITY OF SUCH DAMAGE.</em>
<a name="677" href="#677">677</a> <em class="comment"> * </em>
<a name="678" href="#678">678</a> <em class="comment"> * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.</em>
<a name="679" href="#679">679</a> <em class="comment"> */</em>
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>





See more files for this project here

PeerWriter

PeerWriter is a collaborative text editor. Multiple peers can edit the same document while they see overall changes in real-time. PeerWriter is based on a decentralized infrastructure, using a non-locking concurrency protocol ensuring global consistency.

Project homepage: http://sourceforge.net/projects/peerwriter
Programming language(s): Java,XML
License: gpl2

  DOMReader.html
  DOMWriter.html
  DispatchHandler.html
  DocumentInputSource.html
  DocumentResult.html
  DocumentSource.html
  ElementModifier.html
  ElementStack.html
  HTMLWriter.html
  JAXPHelper.html
  OutputFormat.html
  PruningDispatchHandler.html
  PruningElementStack.html
  SAXContentHandler.html
  SAXEventRecorder.html
  SAXHelper.html
  SAXModifier.html
  SAXModifyContentHandler.html
  SAXModifyElementHandler.html
  SAXModifyException.html
  SAXModifyReader.html
  SAXReader.html
  SAXValidator.html
  SAXWriter.html
  STAXEventReader.html
  STAXEventWriter.html
  XMLResult.html
  XMLWriter.html
  XPP3Reader.html
  XPPReader.html
  package-frame.html
  package-summary.html