XML Support for Tcl

Total Page:16

File Type:pdf, Size:1020Kb

XML Support for Tcl The following paper was originally published in the Proceedings of the Sixth Annual Tcl/Tk Workshop San Diego, California, September 14–18, 1998 XML Support for Tcl Steve Ball Zveno Pty Ltd For more information about USENIX Association contact: 1. Phone: 510 528-8649 2. FAX: 510 548-5738 3. Email: [email protected] 4. WWW URL:http://www.usenix.org/ XML Support For Tcl Steve Ball Zveno Pty Ltd http://www.zveno.com/ [email protected] document. These elements are defined using a Abstract Document Type Definition (DTD), along with XML is emerging as a significant technology for use allowed general entities. The DTD includes rules on both the World Wide Web and in many other which govern what elements or text are allowed to application areas, such as network protocols. occur inside each element. In contrast, HTML gives Documents written in XML have a rich, hierarchical the author a fixed set of tags to use, and those tags structure, the document tree. An application which is have fixed semantics and behaviour. to process XML documents must be able to access and manipulate the document tree in order to be able XML has been designed with the goal of being easier to examine and change the structure. for tool developers to write software for processing documents, so that there will be plentiful applications The DOM is a language-independent specification of available for handling XML. The syntax is far more how an application accesses and manipulates the restricted than SGML, with most optional features document structure. TclDOM is a Tcl language removed. For example, tag minimisation and binding for the DOM. The TclDOM specification omission are not allowed so it is easy to detect the provides a standard API for Tcl applications to end of an element. Empty elements must be explicitly process a XML or HTML document. marked. TclXML is a Tcl package which provides a sample There are two levels of conformity for a XML implementation of TclDOM. It provides XML document. At the very least, a XML document must parsers along with the tools needed to create a be well-formed. A well-formed XML document hierarchical representation of documents which can adheres to all of the syntactic rules of the XML be conveniently processed by a Tcl script. There are specification. All elements must have an end tag, also facilities to check the validity of a document, unless they are empty elements in which case the tag along with commands to produce document output. must include a trailing slash, such as <BR/>. Element TclXML provides a framework for parser and attributes must have a value and the value must be validator modules which allows some or all of the quoted. There may be no occurrances of illegal various components to be implemented in an characters, and so on. XML has been designed so that extension language. a program can check that a document is well-formed without having to use the document's DTD. Keywords: Tcl, World Wide Web, WWW, XML, DOM, Parsing In addition to being well-formed, a XML document may also be valid. A valid XML document conforms A Brief Introduction To XML and DOM to the rules laid out in its associated DTD. This means that all elements have content which is XML allowed according to the element's definition of its content model in the document's DTD. All attributes The eXtensible Markup Language, XML [XML], is a used in elements must also be permitted for that Recommendation from the World Wide Web element and their value must be of the correct type. Consortium (W3C) [W3C] which is a significant All attribute values which are used for identification simplification of SGML, intended to make a subset must be unique, and so on. Validity is a much SGML suitable for use on the Web. XML provides a stronger assertion for a document than well- much more meaningful and rich way in which to formedness, but requires access to the document's represent semantic structure in a document when DTD and more processing time to check the various compared to HTML. With XML, a document author rules. can "call a Spade a <Spade>". That is to say, elements can be given names which are meaningful XML is internationalised and support for Unicode is to the author and convey more of the semantics of the a requirement of XML, so Tcl version 8.1 is well XAPI-J and SAXDOM. A language binding for Tcl positioned to be used for software applications which is discussed in this paper. handle and process XML documents. Other Proposed Standards The following document is a small example of a XML document instance: XML will never replace HTML because XML does not supply any of HTML's semantic features, in <?xml version="1.0"> particular the elements which provide presentational <!DOCTYPE paper SYSTEM "paper.dtd"> and/or behavioural semantics such as STRONG, EM, <paper> UL and FORM. HTML elements perform a function <title>TclXML Example</title> when they are used in a document, whereas XML <abstract>This is an example of a XML document instance. elements do not. XML elements only provide </abstract> syntactic declaration of a document's structure. Of <introduction>XML uses the course, this is what makes XML useful for a wider <acronym><short>DTD</short> range of applications than HTML. <full>Document Type Definition</full></acronym> In order to provide certain semantics for the elements to define classes of documents. used in a XML document other facilities are required. Such a document is known as a A number of languages have been proposed for these <definition>document purposes. The XML Link Language, XLL, provides instance</definition>. the hyperlinking model for XML. XLL has been </introduction> derived from TEI and HyTime and as a result will be <point>A DTD is used to define the a much richer model than HTML's. For example, elements and entities that are XLL will allow bidirectional and multi-destination allowed to appear in a document. links, as well as allowing link targets to specify and Empty elements have a trailing use the structure of the destination resource. In order slash: to render XML documents for viewing or printing a <figure image="figure-1.png"/> </point> stylesheet language will be used. Either Cascading <conclusion>XML is way better than Style Sheets (CSS) [CSS] will be used or the new HTML.</conclusion> proposed XML Stylesheet Language (XSL). XSL <references></references> will also include scripting. </paper> Tcl Support For XML DOM Tcl can be very useful for processing and generating The Document Object Model (DOM) [DOM] is a XML documents, just as Tcl is useful for handling language-neutral specification of a standard HTML documents in CGI scripts. There are many Application Programming Interface (API) for both applications which may be able to use a scripting accessing the features and the content of a document language for document processing, both in GUI and and creating or modifying documents. Documents are non-GUI modes and in standalone, server and client in the form of a tree and the DOM has methods of environments. accessing properties of the tree nodes. DOM provides a core set of features and specific features may be Since applications will have varying requirements, provided for certain markup languages. In the first different supporting libraries may be used to process instance, DOM is providing a specification of documents. Some of these may be implemented features for XML and HTML. The aim of the DOM entirely in Tcl, for cross-platform portability, some is to allow application developers to write software may use C or C++ extensions to improve which manipulates a document and to use whichever performance and some may interface with Java programming language is suitable for the task. The components. Ideally, there will be a standard same underlying constructs will be available in programming interface for applications written in Tcl whatever language the developer chooses. to access the document structure for processing. It is the goal of TclDOM to provide that standard DOM already has language bindings for Java and interface, based upon the DOM specification. ECMAscript. Many tools are being written in Java for processing XML, and standard interfaces are XML support in Tcl has two distinct parts. Firstly, starting to emerge for Java components, such as TclDOM is a language binding for the DOM. TclDOM provides an implementation-independent may need to access the document's tree structure specification of a Tcl API of the DOM for Tcl scripts while at the same time accessing the document's XSL to access and manipulate XML and HTML stylesheet, which is itself a XML document. documents. Secondly, TclXML is a sample implementation of TclDOM which provides XML Previous Work parsers and generators. Uhler's html_library Zveno is making the TclDOM specification and TclXML freely available. Both the TclDOM Stephen Uhler wrote an all-Tcl HTML parser called specification and the TclXML distribution may be html_library [Uhler95]. This library was found on the Zveno website [TCLXML]: sufficiently generalised internally to be easily http://www.zveno.com/zm.cgi/in- adapted for parsing XML documents. Indeed, the tclxml/ tokeniser which is part of the Tcl XML parser in TclXML is derived from html_library. TclDOM html_library translates a HTML or XML TclDOM is a Tcl language binding for the DOM. The document into a series of calls to a Tcl procedure. specification details how to access DOM features Hence, it is an event-based parser where the using Tcl constructs. The goals for TclDOM are: to application is notified of the start and end of provide access to all features of the DOM from a Tcl elements.
Recommended publications
  • FME® Desktop Copyright © 1994 – 2018, Safe Software Inc. All Rights Reserved
    FME® Desktop Copyright © 1994 – 2018, Safe Software Inc. All rights reserved. FME® is the registered trademark of Safe Software Inc. All brands and their product names mentioned herein may be trademarks or registered trademarks of their respective holders and should be noted as such. FME Desktop includes components licensed as described below: Autodesk FBX This software contains Autodesk® FBX® code developed by Autodesk, Inc. Copyright 2016 Autodesk, Inc. All rights, reserved. Such code is provided “as is” and Autodesk, Inc. disclaims any and all warranties, whether express or implied, including without limitation the implied warranties of merchantability, fitness for a particular purpose or non-infringement of third party rights. In no event shall Autodesk, Inc. be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of such code. Autodesk Libraries Contains Autodesk® RealDWG by Autodesk, Inc., Copyright © 2017 Autodesk, Inc. All rights reserved. Home page: www.autodesk.com/realdwg Belge72/b.Lambert72A NTv2 Grid Copyright © 2014-2016 Nicolas SIMON and validated by Service Public de Wallonie and Nationaal Geografisch Instituut. Under Creative Commons Attribution license (CC BY). Bentley i-Model SDK This software includes some components from the Bentley i-Model SDK. Copyright © Bentley Systems International Limited CARIS CSAR GDAL Plugin CARIS CSAR GDAL Plugin is owned by and copyright © 2013 Universal Systems Ltd.
    [Show full text]
  • Linux from Scratch 版本 R11.0-36-中⽂翻译版 发布于 2021 年 9 ⽉ 21 ⽇
    Linux From Scratch 版本 r11.0-36-中⽂翻译版 发布于 2021 年 9 ⽉ 21 ⽇ 由 Gerard Beekmans 原著 总编辑:Bruce Dubbs Linux From Scratch: 版本 r11.0-36-中⽂翻译版 : 发布于 2021 年 9 ⽉ 21 ⽇ 由 由 Gerard Beekmans 原著和总编辑:Bruce Dubbs 版权所有 © 1999-2021 Gerard Beekmans 版权所有 © 1999-2021, Gerard Beekmans 保留所有权利。 本书依照 Creative Commons License 许可证发布。 从本书中提取的计算机命令依照 MIT License 许可证发布。 Linux® 是Linus Torvalds 的注册商标。 Linux From Scratch - 版本 r11.0-36-中⽂翻译版 ⽬录 序⾔ .................................................................................................................................... viii i. 前⾔ ............................................................................................................................ viii ii. 本书⾯向的读者 ............................................................................................................ viii iii. LFS 的⽬标架构 ............................................................................................................ ix iv. 阅读本书需要的背景知识 ................................................................................................. ix v. LFS 和标准 ..................................................................................................................... x vi. 本书选择软件包的逻辑 .................................................................................................... xi vii. 排版约定 .................................................................................................................... xvi viii. 本书结构 .................................................................................................................
    [Show full text]
  • Veritas Infoscale™ Third-Party Software License Agreements Last Updated: 2017-11-06 Legal Notice Copyright © 2017 Veritas Technologies LLC
    Veritas InfoScale™ Third-Party Software License Agreements Last updated: 2017-11-06 Legal Notice Copyright © 2017 Veritas Technologies LLC. All rights reserved. Veritas and the Veritas Logo are trademarks or registered trademarks of Veritas Technologies LLC or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. This product may contain third party software for which Veritas is required to provide attribution to the third party (“Third Party Programs”). Some of the Third Party Programs are available under open source or free software licenses. The License Agreement accompanying the Software does not alter any rights or obligations you may have under those open source or free software licenses. Refer to the third party legal notices document accompanying this Veritas product or available at: https://www.veritas.com/about/legal/license-agreements The product described in this document is distributed under licenses restricting its use, copying, distribution, and decompilation/reverse engineering. No part of this document may be reproduced in any form by any means without prior written authorization of Veritas Technologies LLC and its licensors, if any. THE DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. VERITAS TECHNOLOGIES LLC SHALL NOT BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS DOCUMENTATION. THE INFORMATION CONTAINED IN THIS DOCUMENTATION IS SUBJECT TO CHANGE WITHOUT NOTICE.
    [Show full text]
  • Open Source Acknowledgements
    This document acknowledges certain third‐parties whose software is used in Esri products. GENERAL ACKNOWLEDGEMENTS Portions of this work are: Copyright ©2007‐2011 Geodata International Ltd. All rights reserved. Copyright ©1998‐2008 Leica Geospatial Imaging, LLC. All rights reserved. Copyright ©1995‐2003 LizardTech Inc. All rights reserved. MrSID is protected by the U.S. Patent No. 5,710,835. Foreign Patents Pending. Copyright ©1996‐2011 Microsoft Corporation. All rights reserved. Based in part on the work of the Independent JPEG Group. OPEN SOURCE ACKNOWLEDGEMENTS 7‐Zip 7‐Zip © 1999‐2010 Igor Pavlov. Licenses for files are: 1) 7z.dll: GNU LGPL + unRAR restriction 2) All other files: GNU LGPL The GNU LGPL + unRAR restriction means that you must follow both GNU LGPL rules and unRAR restriction rules. Note: You can use 7‐Zip on any computer, including a computer in a commercial organization. You don't need to register or pay for 7‐Zip. GNU LGPL information ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You can receive a copy of the GNU Lesser General Public License from http://www.gnu.org/ See Common Open Source Licenses below for copy of LGPL 2.1 License.
    [Show full text]
  • Foreign Library Interface by Daniel Adler Dia Applications That Can Run on a Multitude of Plat- Forms
    30 CONTRIBUTED RESEARCH ARTICLES Foreign Library Interface by Daniel Adler dia applications that can run on a multitude of plat- forms. Abstract We present an improved Foreign Function Interface (FFI) for R to call arbitary na- tive functions without the need for C wrapper Foreign function interfaces code. Further we discuss a dynamic linkage framework for binding standard C libraries to FFIs provide the backbone of a language to inter- R across platforms using a universal type infor- face with foreign code. Depending on the design of mation format. The package rdyncall comprises this service, it can largely unburden developers from the framework and an initial repository of cross- writing additional wrapper code. In this section, we platform bindings for standard libraries such as compare the built-in R FFI with that provided by (legacy and modern) OpenGL, the family of SDL rdyncall. We use a simple example that sketches the libraries and Expat. The package enables system- different work flow paths for making an R binding to level programming using the R language; sam- a function from a foreign C library. ple applications are given in the article. We out- line the underlying automation tool-chain that extracts cross-platform bindings from C headers, FFI of base R making the repository extendable and open for Suppose that we wish to invoke the C function sqrt library developers. of the Standard C Math library. The function is de- clared as follows in C: Introduction double sqrt(double x); We present an improved Foreign Function Interface The .C function from the base R FFI offers a call (FFI) for R that significantly reduces the amount of gate to C code with very strict conversion rules, and C wrapper code needed to interface with C.
    [Show full text]
  • Red Hat Jboss Core Services 2.4.23 Apache HTTP Server 2.4.23 Release Notes
    Red Hat JBoss Core Services 2.4.23 Apache HTTP Server 2.4.23 Release Notes For use with Red Hat JBoss middleware products. Last Updated: 2018-05-23 Red Hat JBoss Core Services 2.4.23 Apache HTTP Server 2.4.23 Release Notes For use with Red Hat JBoss middleware products. Legal Notice Copyright © 2018 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent.
    [Show full text]
  • Oracle HTTP Server Administrator's Guide
    Oracle® HTTP Server Administrator’s Guide 10g Release 1 (10.1) Part No. B12255-01 December 2003 Oracle HTTP Server Administrator’s Guide, 10g Release 1 (10.1) Part No. B12255-01 Copyright © 2003 Oracle Corporation. All rights reserved. Primary Author: Priya Darshane Contributor: Julia Pond, Warren Briese, Kevin Clark, Priscila Darakjian, Sander Goudswaard, Pushkar Kapasi, Chuck Murray, Mark Nelson, Bert Rich, Shankar Raman, Baogang Song, Kevin Wang The Programs (which include both the software and documentation) contain proprietary information of Oracle Corporation; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent and other intellectual and industrial property laws. Reverse engineering, disassembly or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. Oracle Corporation does not warrant that this document is error-free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Oracle Corporation. If the Programs are delivered to the U.S. Government or anyone licensing or using the programs on behalf of the U.S. Government, the following notice is applicable: Restricted Rights Notice Programs delivered subject to the DOD FAR Supplement are “commercial computer software” and use, duplication, and disclosure of the Programs, including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement.
    [Show full text]
  • Netscaler® 13.0 - Third Party Notices
    NetScaler® 13.0 - Third Party Notices NetScaler 13.0 may include third party software components licensed under the following terms. This list was generated using third party software as of the date listed. This list may change with specific versions of the product and may not be complete; it is provided “As-Is.” TO THE EXTENT PERMITTED BY APPLICABLE LAW, CITRIX AND ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, WITH REGARD TO THE LIST OR ITS ACCURACY OR COMPLETENESS, OR WITH RESPECT TO ANY RESULTS TO BE OBTAINED FROM USE OR DISTRIBUTION OF THE LIST. BY USING OR DISTRIBUTING THE LIST, YOU AGREE THAT IN NO EVENT SHALL CITRIX BE HELD LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY OTHER DAMAGES WHATSOEVER RESULTING FROM ANY USE OR DISTRIBUTION OF THIS LIST. 1 Table of Contents Adaptive Communication Environment (ACE) 6.3.1 ................................................................................... 17 Apache HTTP Server 2.4.39 ......................................................................................................................... 17 Apache Tomcat 8.5.34 ................................................................................................................................ 17 Apache Xalan C++ 1.10.0 ............................................................................................................................ 17 Apache Xerces C++ 2.7.0 ............................................................................................................................
    [Show full text]
  • Tclxml: the Next Generation
    TclXML: The Next Generation Steve Ball [email protected] Zveno http://www.zveno.com Abstract libxslt library for Python, Perl and Ruby. TclXML is a family of packages that together provide com- Since both libraries are in widespread use they are stable, prehensive support for creating and processing XML docu- well-tested and well supported. ments using the Tcl scripting language. The package family is comprised of TclXML (for SAX-style streamed parsing), Tcl applications that process XML documents often need to TclDOM (for in-memory tree manipulation) and TclXSLT navigate the document tree, or otherwise identify some part of (for transformations). a document to process. The W3C XPath language has been designed for this purpose. XPath is part of the XSLT and New developments in each of the packages are discussed, as XML-Query languages, and DOM Level 3 [7] also has sup- well as new XML-based applications that make use of the port for XPath. Addressing a document component using TclXML framework. The most important aspect of these de- XPath is quite succinct, as the following examples show: velopments is its impact on application development and inte- gration. /book /book/chapter //title 1. Introduction //section[sectioninfo]/para The TclXML project [1] encompasses three closely related, Example 1. XPath Expressions but separate packages - TclXML, TclDOM [2] and TclXSLT. Together these packages provide a comprehensive toolkit for accessing and manipulating data in XML documents [3]. From their early development these packages have concen- The first path selects the document element book. The sec- trated on the design of APIs to allow application developers to ond path selects all chapter elements within a book.
    [Show full text]
  • CEGUI Unified Editor
    Charles University in Prague Faculty of Mathematics and Physics BACHELOR THESIS Martin Preisler <[email protected]> Unified Editor for CEGUI Department of Software and Computer Science Education Supervisor of the bachelor thesis: Martin Babka Study programme: Computer Science Specialization: Programming Prague 2012 Many thanks to my supervisor, Mgr. Martin Babka, for helpful advices and mentoring through the development. I would also like to thank contributors who provided feedback, bugfixes and valuable features. I declare that I carried out this bachelor thesis independently, and only with the cited sources, literature and other professional sources. I understand that my work relates to the rights and obliga- tions under the Act No. 121/2000 Coll., the Copyright Act, as amended, in particular the fact that the Charles University in Prague has the right to conclude a license agreement on the use of this work as a school work pursuant to Section 60 paragraph 1 of the Copyright Act. In date TITLE: Unified Editor for CEGUI AUTHOR: Martin Preisler DEPARTMENT: Katedra teoretické informatiky a matematické logiky SUPERVISOR: Mgr. Martin Babka ABSTRACT: This thesis presents a free software GUI application called the CEGUI Unified Editor. The application is mainly writ- ten in Python and is licensed under GPLv3. Its purpose is to create and modify assets of graphical interfaces made with the CEGUI library. Features include project management, imageset editing and layout editing. Data for older versions of CEGUI are transparently converted using compatibility layers. Big empha- sis is put on ease of use, collaboration between multiple content authors and portability. KEYWORDS: CEGUI, editor, imageset, layout, GUI design NÁZEV PRÁCE: Unified Editor pro CEGUI AUTOR: Martin Preisler KATEDRA: Katedra teoretické informatiky a matematické logiky VEDOUCÍ BAKALÁRSKɡ PRÁCE: Mgr.
    [Show full text]
  • Perl and XML.Pdf
    Perl and XML XML is a text-based markup language that has taken the programming world by storm. More powerful than HTML yet less demanding than SGML, XML has proven itself to be flexible and resilient. XML is the perfect tool for formatting documents with even the smallest bit of complexity, from Web pages to legal contracts to books. However, XML has also proven itself to be indispensable for organizing and conveying other sorts of data as well, thus its central role in web services like SOAP and XML-RPC. As the Perl programming language was tailor-made for manipulating text, few people have disputed the fact that Perl and XML are perfectly suited for one another. The only question has been what's the best way to do it. That's where this book comes in. Perl & XML is aimed at Perl programmers who need to work with XML documents and data. The book covers all the major modules for XML processing in Perl, including XML::Simple, XML::Parser, XML::LibXML, XML::XPath, XML::Writer, XML::Pyx, XML::Parser::PerlSAX, XML::SAX, XML::SimpleObject, XML::TreeBuilder, XML::Grove, XML::DOM, XML::RSS, XML::Generator::DBI, and SOAP::Lite. But this book is more than just a listing of modules; it gives a complete, comprehensive tour of the landscape of Perl and XML, making sense of the myriad of modules, terminology, and techniques. This book covers: • parsing XML documents and writing them out again • working with event streams and SAX • tree processing and the Document Object Model • advanced tree processing with XPath and XSLT Most valuably, the last two chapters of Perl & XML give complete examples of XML applications, pulling together all the tools at your disposal.
    [Show full text]
  • SAN Host Utilities
    Notices About this information The following copyright statements and licenses apply to software components that are distributed with various versions of the NetApp® SteelStore Cloud Integrated Storage v3.2, 3.2.3, and 3.3 products. Your product does not necessarily use all the software components referred to below. Copyrights and licenses The following components are subject to the BSD licenses: ? curl-7.21.0: MIT/BSD license http://curl.haxx.se/legal/licmix.html License Mixing with apps, libcurl and Third Party Libraries =========================================================== libcurl can be built to use a fair amount of various third party libraries, libraries that are written and provided by other parties that are distributed using their own licenses. Even libcurl itself contains code that may cause problems to some. This document attempts to describe what licenses libcurl and the other libraries use and what possible dilemmas linking and mixing them all can lead to for end users. I am not a lawyer and this is not legal advice! One common dilemma is that GPL[1]-licensed code is not allowed to be linked with code licensed under the Original BSD license (with the announcement clause). You may still build your own copies that use them all, but distributing them as binaries would be to violate the GPL license - unless you accompany your license with an exception[2]. This particular problem was addressed when the Modified BSD license was created, which does not have the announcement clause that collides with GPL. libcurl http://curl.haxx.se/docs/copyright.html Uses an MIT (or Modified BSD)-style license that is as liberal as possible.
    [Show full text]