{"id":2922,"date":"2016-03-19T06:21:31","date_gmt":"2016-03-19T06:21:31","guid":{"rendered":"http:\/\/www.ericwhite.com\/home2\/bm8qcmjy\/public_html\/blog\/?page_id=2922"},"modified":"2016-03-19T06:40:22","modified_gmt":"2016-03-19T06:40:22","slug":"new-open-source-project-linq-to-xml-for-javascript","status":"publish","type":"page","link":"https:\/\/www.ericwhite.com\/blog\/new-open-source-project-linq-to-xml-for-javascript\/","title":{"rendered":"New Open Source Project: LINQ to XML for JavaScript"},"content":{"rendered":"<p><span class=\"Back\"><a class=\"Back\" href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-and-javascript\/\">Return to the<br \/>Open XML and JavaScript<br \/>Developer Center<\/a><\/span><\/p>\n<p>Today, I\u2019m very pleased to announce the release on CodePlex (at <a href=\"http:\/\/ltxmljs.codeplex.com\/\">ltxmljs.codeplex.com<\/a>) of the first release of an XML processing library for JavaScript that is inspired by and largely similar to the LINQ to XML library for .NET.\u00a0 One of the most fantastic benefits of LINQ to XML is the expressive way that you can write code to create and transform XML.\u00a0 The powerful idioms that you can use in LINQ to XML make tough XML processing problems much easier.\u00a0 In general, this was my motivation to develop this project.<\/p>\n<p>More specifically, over the years, I have written thousands of lines of LINQ to XML code to create and modify Open XML documents.\u00a0 I have been working on a project that requires that I implement some interesting Open XML functionality in JavaScript.\u00a0 In order to implement this project in the most efficient manner, I wrote this small JavaScript library that enabled me to, with a minimum of editing, convert a large amount of existing C# code to JavaScript.\u00a0 I have already translated some pretty complex code and it works well.\u00a0 In the future, I am going to translate some of the most popular modules from <a href=\"https:\/\/github.com\/OfficeDev\/Open-Xml-PowerTools\">PowerTools for Open XML<\/a> into JavaScript, and then we\u2019ll see some powerful ways to build web applications that create, transform, query, and view Open XML documents.\u00a0 This is going to be fun!<\/p>\n<p>This enables web applications of any variety to more easily add Open XML functionality.\u00a0 It doesn\u2019t matter if your web application is written in PHP, Ruby, Java, C, ASP.NET, legacy ASP, Cold Fusion, or 8080A assembler.\u00a0 If you can serve up JavaScript to the browser, you can add Open XML functionality into your application:<\/p>\n<ul>\n<li>Generate a report as an Open XML WordprocessingML document that the end user can download and modify or include in another document.<\/li>\n<li>Generate an Open XML spreadsheet from data on your web site, enable the end use to download and further manipulate.<\/li>\n<li>Generate customized Open XML presentations, thereby presenting your sales team with a super powerful way to build sales presentations that are tailored to a specific customer.<\/li>\n<li>Upload an Open XML document and query the document for certain characteristics, such as whether the document contains tracked revisions or comments.<\/li>\n<li>Transform an Open XML document to HTML <b><i><span style=\"text-decoration: underline;\">right in the browser<\/span><\/i><\/b>, enabling customized display of documents that are uploaded from the local file system or are sent to the client from the server.<\/li>\n<\/ul>\n<p>The list goes on and on.\u00a0 As I develop each one of these scenarios, I\u2019ll be hosting this JavaScript code right here on OpenXMLDeveloper.org.\u00a0 You will be able to run these examples without leaving the blog post that introduces each example.<\/p>\n<p>All of these scenarios require sophisticated processing of XML, and I\u2019m sorry, DOM Document is just not going to cut it.\u00a0 Therefore, I needed a JavaScript implementation of a library that enables the super-expressive coding patterns of LINQ to XML.<\/p>\n<p>LINQ to XML for JavaScript is dependent on the excellent <a href=\"http:\/\/linqjs.codeplex.com\/\">LINQ for JavaScript<\/a> project. <span style=\"background: yellow;\">Both projects are licensed under the MIT license<\/span>.<\/p>\n<p style=\"padding-left: 30px;\"><em>There is an\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-and-javascript\/\">Open XML \/ JavaScript Resource Center<\/a>, where you can find all of the content that we have put together on using Open XML from JavaScript.<\/em><\/p>\n<p>But enough of this \u2013 let\u2019s dive into some code.<\/p>\n<p>JavaScript is not C#, and there are fundamental semantic differences between them, of course, so there are a number of places where the code changes a bit.\u00a0 In the rest of this blog post, I\u2019m going to assume knowledge of LINQ to XML.\u00a0 Further, in this blog post, I am not going to go into all of the technical reasons why the differences are there.\u00a0 I\u2019ll reserve that for future blog posts.<\/p>\n<h1>Different Idiom for Instantiating Namespace and Name Objects<\/h1>\n<p>In the following C# snippet, the <b>ns<\/b> variable is initialized by assigning a string to an <b>XNamespace<\/b> object, and the <b>XName<\/b> objects are initialized by \u2018adding\u2019 a namespace to a string.\u00a0 The assignment of a string to an <b>XNamespace<\/b> object works because there is an implicit type conversion.\u00a0 The \u2018addition\u2019 of an <b>XName<\/b> object and a string works<br \/>\nbecause there is an operator overload that produces an <b>XName<\/b> object.<\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: #2b91af; background: white;\">XNamespace<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> ns = <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;http:\/\/www.ericwhite.com\/one&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: #2b91af; background: white;\">XName<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> root = ns + <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;root&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: #2b91af; background: white;\">XName<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> anAttribute = <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;anAttribute&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: #2b91af; background: white;\">XName<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> child = ns + <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;child&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: #2b91af; background: white;\">XElement<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> x = <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span> <span style=\"font-size: 9.5pt; font-family: Consolas; color: #2b91af; background: white;\">XElement<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">(root,<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span> <span style=\"font-size: 9.5pt; font-family: Consolas; color: #2b91af; background: white;\">XAttribute<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">(anAttribute,<br \/>\n123),<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span> <span style=\"font-size: 9.5pt; font-family: Consolas; color: #2b91af; background: white;\">XAttribute<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">(<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;xmlns&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">,<br \/>\nns.NamespaceName),<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span> <span style=\"font-size: 9.5pt; font-family: Consolas; color: #2b91af; background: white;\">XElement<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">(child,<br \/>\n456));<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: #2b91af; background: white;\">Console<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">.WriteLine(x);<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p>In JavaScript, there are no implicit conversions that you can write, so instead you must use the new operator to create XNamespace and XName objects.<\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> ns = <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XNamespace(<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;http:\/\/www.ericwhite.com\/one&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">);<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> root = <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XName(ns + <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;root&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">);<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> anAttribute = <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XName(<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;anAttribute&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">);<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> child = <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XName(ns + <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;child&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">);<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> x = <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"><br \/>\nXElement(root,<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"><br \/>\nXAttribute(anAttribute, 123),<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XAttribute(<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;xmlns&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">, ns.namespaceName),<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XElement(child, 456));<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">document.writeln(convertToEntities(x.toString(<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">true<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">)));<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p>As you will notice in the above example, the idiom of adding a namespace to a string works in JavaScript as well.\u00a0 However, the mechanism by which it works is different.\u00a0 Instead of overloading the \u2018+\u2019 operator, it works because calling <b>toString<\/b> on a namespace object results in its curly bracket form, such as \u2018{http:\/\/www.ericwhite.com}\u2019.\u00a0 Adding the local name as a string results in something like: \u2018{http:\/\/www.ericwhite.com}root\u2019.\u00a0 The <b>ltxml.js<\/b> module then uses that string to create (or retrieve) an atomized <b>XName<\/b><br \/>\nobject.\u00a0 More on this in the next post.<\/p>\n<h1>Renaming to Conform to JavaScript Conventions<\/h1>\n<p>The next thing that you will notice is that the names of the various properties and methods are in lowerCamelCase, which conforms to JavaScript conventions.\u00a0 Per JavaScript conventions, a method should start with an uppercase letter on when it is intended to be called using the constructor pattern, in other words, using the <b>new<\/b> keyword.<\/p>\n<p>So, for example, the public properties and methods of <b>XElement<\/b> objects look like this:<\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">new XElement(xelement)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 copy constructor<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">new XElement(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">new XElement(xname, varargs)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.ancestorsAndSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.ancestorsAndSelf(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.attribute(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.attributes()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.attributes(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.descendantNodesAndSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.descendantsAndSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.descendantsAndSelf(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.getDefaultNamespace()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.getNamespaceOfPrefix()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.getPrefixOfNamespace()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.load(XMLDocument)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.parse()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.removeAll()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.removeAttributes()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.replaceAll(content)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.replaceAttributes(content)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.setAttributeValue(xname, value)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.setElementValue(xname, value)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.toString()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.toString(indent)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.name<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.getFirstAttribute()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.firstAttribute<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.getHasAttributes()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.hasAttributes<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.getHasElements()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.hasElements<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.getIsEmpty()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.isEmpty<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.getLastAttribute()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.lastAttribute<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.getValue<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.setValue()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">XElement.value<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p>Of course, these are only the properties and methods implemented by XElement objects.\u00a0 Those objects inherit from XContainer, which implements another set of properties and methods.\u00a0 XContainer inherits from XNode, which again implements some properties and methods.<\/p>\n<p>The class hierarchy of <b>ltxml.js<\/b> is almost identical to that of LINQ to XML.\u00a0 I say \u2018almost\u2019 because there are a few differences.\u00a0 For instance in <b>ltxml.js<\/b>, there is an <b>XEntity<\/b> class that enables you to serialize entities in an easy way.<\/p>\n<h1>Use of Getter and Setter Properties<\/h1>\n<p>LINQ to XML implements a number of properties, such as <b>value<\/b>, <b>isEmpty<\/b>, and <b>hasAttributes<\/b> on the <b>XElement<\/b> class.\u00a0 If you are using versions of JavaScript prior to ES5, you can use functions that have the word \u2018get\u2019 or \u2018set\u2019 prepended to them.\u00a0 For instance, for the <b>value<\/b> property, you can use <b>setValue(value)<\/b> and <b>getValue<\/b>.\u00a0 For the <b>isEmpty<\/b> property, you can use <b>getIsEmpty()<\/b>.\u00a0 Of course, if you are using ES5, you can just use the properties themselves.<\/p>\n<h1>Some Properties are implemented as Fields<\/h1>\n<p>Certain properties can be implemented as simple properties and it does not make sense to implement getters and setters, or get\/set methods.\u00a0 As an example, in the <b>XElement<\/b> class, the <b>name<\/b>, <b>nodeType<\/b>, and <b>parent<\/b> properties are simple fields.<\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.name<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.parent<\/span><\/p>\n<h1>Annotations<\/h1>\n<p>In LINQ to XML, annotations are type based, which is to say that you add, retrieve, and remove annotations by identifying them by their type.\u00a0 Of course, with JavaScript, types are not meaningful in this context, so instead annotations are identified by a unique string, which is the first argument to the <b>addAnnotation <\/b>method:<\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">o.addAnnotation(<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8216;mySimulatedType&#8217;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">, <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8216;hello<br \/>\nworld&#8217;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">);<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">o.addAnnotation(<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8216;text&#8217;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">, <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8216;goodbye&#8217;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">);<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">o.addAnnotation(<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8216;number&#8217;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">,<br \/>\n123);<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p>You then retrieve them by the same string:<\/p>\n<p><span style=\"font-size: 9.5pt; line-height: 115%; font-family: Consolas; color: black; background: white;\">o.annotations(<\/span><span style=\"font-size: 9.5pt; line-height: 115%; font-family: Consolas; color: #a31515; background: white;\">&#8216;text&#8217;<\/span><span style=\"font-size: 9.5pt; line-height: 115%; font-family: Consolas; color: black; background: white;\">)<\/span><\/p>\n<h1>The Ltxml Global Variable<\/h1>\n<p>ltxml.js uses the module pattern, which means that it<br \/>\nexposes one and only one global, named <b>Ltxml<\/b>.\u00a0 This means that, by<br \/>\ndefault, you would need to code as follows:<\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> ns1 = Ltxml.XNamespace.getNone();<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> e = Ltxml.XNamespace(<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;http:\/\/www.ericwhite.com&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">);<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> x = <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Ltxml.XElement(e + <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;root&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">,<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> Ltxml.XAttribute(Ltxml.XNamespace.getXmlns() + <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;e&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">, e.namespaceName),<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"><br \/>\nLtxml.XElement(e + <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;boo&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">, <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;yar&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">),<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">new<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Ltxml.XElement(e + <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;yar&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">, <\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: #a31515; background: white;\">&#8220;boo&#8221;<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">));<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p>However, prepending Ltxml to the beginning of every reference is inconvenient, and causes you to write code that does not look like LINQ to XML code when using C#.\u00a0 Instead, at the beginning of your module where you are going to use ltxml.js, you can include the following code:<\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XAttribute = Ltxml.XAttribute;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XCData = Ltxml.XCData;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XComment = Ltxml.XComment;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XContainer = Ltxml.XContainer;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XDeclaration = Ltxml.XDeclaration;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XDocument = Ltxml.XDocument;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XElement = Ltxml.XElement;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XName = Ltxml.XName;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XNamespace = Ltxml.XNamespace;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XNode = Ltxml.XNode;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XObject = Ltxml.XObject;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XProcessingInstruction =<br \/>\nLtxml.XProcessingInstruction;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XText = Ltxml.XText;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XEntity = Ltxml.XEntity;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: blue; background: white;\">var<\/span><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\"> XEnumerable = Ltxml.XEnumerable;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Enumerable.prototype.elements =<br \/>\nLtxml.XEnumerable.prototype.elements;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Enumerable.prototype.ancestors =<br \/>\nLtxml.XEnumerable.prototype.ancestors;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Enumerable.prototype.ancestorsAndSelf =<br \/>\nLtxml.XEnumerable.prototype.ancestorsAndSelf;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Enumerable.prototype.attributes =<br \/>\nLtxml.XEnumerable.prototype.attributes;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Enumerable.prototype.descendantNodes =<br \/>\nLtxml.XEnumerable.prototype.descendantNodes;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Enumerable.prototype.descendantNodesAndSelf =<br \/>\nLtxml.XEnumerable.prototype.descendantNodesAndSelf;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Enumerable.prototype.descendants =<br \/>\nLtxml.XEnumerable.prototype.descendants;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Enumerable.prototype.descendantsAndSelf =<br \/>\nLtxml.XEnumerable.prototype.descendantsAndSelf;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Enumerable.prototype.elements =<br \/>\nLtxml.XEnumerable.prototype.elements;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Enumerable.prototype.nodes =<br \/>\nLtxml.XEnumerable.prototype.nodes;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">Enumerable.prototype.remove =<br \/>\nLtxml.XEnumerable.prototype.remove;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: black; background: white;\">\u00a0<\/span><\/p>\n<p>This enables you to write code in a very similar way to using LINQ to XML with C#.<\/p>\n<h1>Download, Experiment, and Enjoy<\/h1>\n<p><b>ltxml.js<\/b> is dependent on <b>linqjs<\/b>, which is available at <a href=\"http:\/\/linqjs.codeplex.com\">http:\/\/linqjs.codeplex.com<\/a>.\u00a0 It is based on version 3.0.3 &#8211; Beta 4.\u00a0 The recommended download if <b>ltxml.js<\/b> contains the version of <b>linq.js<\/b> that it has been tested against.\u00a0 After <b>linq.js<\/b> is released in its non-beta form, I will update <b>ltxml.js<\/b>, validating against the latest release.<\/p>\n<p>There are a large number of tests and examples of the use of <b>ltxml.js<\/b> in the file <b>ltxmlTest.html<\/b>, which is in the download.\u00a0 In the near future, I will be updating this file, as well as creating a number of examples that teach how to use <b>ltxml.js<\/b>, but most LINQ to XML developers will find <b>ltxml.js<\/b> very familiar.\u00a0 While I am calling this a beta release, I am using it in a real-world project. I have written about 7,000<br \/>\nlines of JavaScript code that uses this API, and it is working well.<\/p>\n<p>So download it at <a href=\"http:\/\/ltxmljs.codeplex.com\/\">ltxmljs.codeplex.com<\/a>,<br \/>\nand let me know how it works for you.<\/p>\n<p>Here is the entire API of ltxml.js:<\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** Ltxml *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* Ltxml.clearCache()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XName =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XName(namespace, name)\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ namespace is<br \/>\nan XNamespace object, name is string<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XName(name)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ name is<br \/>\nstring, is in no namespace<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XName(name)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ name =<br \/>\n&#8216;{namespaceURI}name&#8217;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XName.get(expandedName)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XName.get(namespace, localName)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XName.toString()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XName.localName<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XName.namespace<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XName.namespaceName<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XNamespace =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XNamespace(uri)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNamespace.get(uri)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNamespace.getName(localName)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNamespace.toString()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNamespace.namespaceName<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** static props *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNamespace.getNone()\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ returns<br \/>\nnamespace for &#8216;no namespace&#8217;<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNamespace.none<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNamespace.getXml()\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/<br \/>\nhttp:\/\/www.w3.org\/XML\/1998\/namespace<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNamespace.xml<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNamespace.getXmlns()\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/<br \/>\nhttp:\/\/www.w3.org\/2000\/xmlns\/<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNamespace.xmlns<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XObject (abstract) =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XObject.addAnnotation(type, object)\u00a0 \/\/ type is<br \/>\nstring<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XObject.annotation(type)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XObject.annotations(type)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XObject.removeAnnotations<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XObject.removeAnnotations(type)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XObject.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XObject.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XObject.getDocument()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XObject.document<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XNode: XObject (abstract) =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.addAfterSelf(varargs)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.addBeforeSelf(varargs)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.ancestors()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.ancestors(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.deepEquals<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.elementsAfterSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.elementsAfterSelf(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.elementsBeforeSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.elementsBeforeSelf(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.nodesAfterSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.nodesBeforeSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.remove()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.replaceWith(content)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as field *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.getNextNode()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.nextNode<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.getPreviousNode()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XNode.previousNode<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XAttribute: XObject =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XAttribute(name, value)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XAttribute(XAttribute)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.remove()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.setValue(value)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.toString()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.isNamespaceDeclaration<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.name<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.value<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.getNextAttribute()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.nextAttribute<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.getPreviousAttribute()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XAttribute.previousAttribute<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XComment: XNode =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XComment(value)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XComment(xcomment)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XComment.toString()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XComment.toString(indent)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XComment.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XComment.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XComment.value<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XContainer: XNode =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.add(content)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.addFirst(content)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.descendantNodes<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.descendants()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.descendants(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.element(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.elements()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.elements(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.nodes()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.removeNodes()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.replaceNodes(content)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.getFirstNode()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.firstNode<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.getLastNode()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XContainer.lastNode<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XDeclaration =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XDeclaration(version, encoding, standalone)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XDeclaration(xdeclaration)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDeclaration.toString(indent)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDeclaration.encoding<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDeclaration.standalone<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDeclaration.version<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XDocument: XContainer =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XDocument()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XDocument(content)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XDocument(xdocument)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XDocument(xdeclaration, content)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDocument.descendants()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDocument.descendants(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDocument.parse(xml)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDocument.load(XMLDocument)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDocument.toString()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDocument.toString(indent)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDocument.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDocument.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDocument.declaration<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDocument.getRoot()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XDocument.root<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XElement: XContainer =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XElement(xelement)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 copy<br \/>\nconstructor<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XElement(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XElement(xname, varargs)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.ancestorsAndSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.ancestorsAndSelf(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.attribute(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.attributes()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.attributes(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.descendantNodesAndSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.descendantsAndSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.descendantsAndSelf(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.getDefaultNamespace()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.getNamespaceOfPrefix()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.getPrefixOfNamespace()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.load(XMLDocument)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.parse()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.removeAll()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.removeAttributes()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.replaceAll(content)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.replaceAttributes(content)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.setAttributeValue(xname, value)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.setElementValue(xname, value)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.toString()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.toString(indent)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.name<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.getFirstAttribute()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.firstAttribute<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.getHasAttributes()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.hasAttributes<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.getHasElements()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.hasElements<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.getIsEmpty()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.isEmpty<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.getLastAttribute()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.lastAttribute<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.getValue<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.setValue()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XElement.value<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XProcessingInstruction: XNode =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new<br \/>\nXProcessingInstruction(xprocessingInstruction)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XProcessingInstruction(target, data)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XProcessingInstruction.toString()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XProcessingInstruction.toString(indent)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XProcessingInstruction.data<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XProcessingInstruction.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XProcessingInstruction.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XProcessingInstruction.target<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XText: XNode =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XText(value)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XText(XText)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XText.toString()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XText.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XText.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XText.value<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XEntity: XNode =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XEntity(value)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XEntity(XEntity)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XEntity.toString()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XEntity.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XEntity.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XEntity.value<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== XCData: XText =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XCData(value)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* new XCData(XCData)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XCData.toString()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">***** props implemented as fields *****<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XCData.nodeType<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XCData.parent<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* XCData.value<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">****************************************************<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">*===== Extension methods =====<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* ancestors()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* ancestors(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* ancestorsAndSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* ancestorsAndSelf(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* attributes()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* attributes(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* descendantNodes()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* descendantNodesAndSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* descendants()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* descendants(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* descendantsAndSelf()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* descendantsAndSelf(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* elements()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* elements(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* nodes()<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">* remove(xname)<\/span><\/p>\n<p style=\"margin: 0; padding: 0; line-height: normal;\"><span style=\"font-size: 9.5pt; font-family: Consolas; color: green; background: white;\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Return to theOpen XML and JavaScriptDeveloper Center Today, I\u2019m very pleased to announce the release on CodePlex (at ltxmljs.codeplex.com) of the first release of an XML processing library for JavaScript that is inspired by and largely similar to the LINQ to XML library for .NET.\u00a0 One of the most fantastic benefits of LINQ to XML [&hellip;]<\/p>\n","protected":false},"author":10567,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"_s2mail":"","footnotes":""},"class_list":["post-2922","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/2922","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/users\/10567"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/comments?post=2922"}],"version-history":[{"count":3,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/2922\/revisions"}],"predecessor-version":[{"id":2934,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/2922\/revisions\/2934"}],"wp:attachment":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/media?parent=2922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}