gitlab.gnome.org Open in urlscan Pro
8.43.85.5  Public Scan

Submitted URL: http://91.121.203.120/
Effective URL: https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home
Submission: On March 13 via api from JP — Scanned from JP

Form analysis 2 forms found in the DOM

<form tabindex="-1" class="b-dropdown-form gl-p-0">
  <div class="gl-display-flex gl-align-items-stretch">
    <div data-testid="menu-sidebar" class="gl-w-grid-size-30 gl-flex-shrink-0 gl-bg-gray-10 gl-p-3 gl-w-full">
      <div class="gl-display-flex gl-align-items-stretch gl-flex-direction-column">
        <div data-testid="menu-section" class=""><strong data-testid="menu-header" class="gl-px-4 gl-py-2 gl-text-gray-900 gl-display-block"> Explore </strong><a aria-label="Projects" data-qa-selector="menu_item_link" data-qa-title="Projects" href="/explore" class="btn top-nav-menu-item gl-display-block gl-pr-3! gl-w-full btn-default btn-md gl-button btn-default-tertiary gl-shadow-none! gl-font-weight-bold! active gl-mt-1" data-testid="menu-item"><!----> <!---->  <span class="gl-button-text"><span class="gl-display-flex"><svg data-testid="project-icon" role="img" aria-hidden="true" class="gl-icon s16 gl-mr-3!"><use href="/assets/icons-5f28ad8ab3377176325e2edb59a58c34611f3e7e6720f4a6096d8105813fafec.svg#project"></use></svg> 
      Projects
      <!----></span></span></a><a aria-label="Groups" data-qa-selector="menu_item_link" data-qa-title="Groups" href="/explore/groups" class="btn top-nav-menu-item gl-display-block gl-pr-3! gl-w-full btn-default btn-md gl-button btn-default-tertiary gl-mt-1" data-testid="menu-item"><!----> <!---->  <span class="gl-button-text"><span class="gl-display-flex"><svg data-testid="group-icon" role="img" aria-hidden="true" class="gl-icon s16 gl-mr-3!"><use href="/assets/icons-5f28ad8ab3377176325e2edb59a58c34611f3e7e6720f4a6096d8105813fafec.svg#group"></use></svg> 
      Groups
      <!----></span></span></a><a aria-label="Snippets" data-qa-selector="menu_item_link" data-qa-title="Snippets" href="/explore/snippets" class="btn top-nav-menu-item gl-display-block gl-pr-3! gl-w-full btn-default btn-md gl-button btn-default-tertiary gl-mt-1" data-testid="menu-item"><!----> <!---->  <span class="gl-button-text"><span class="gl-display-flex"><svg data-testid="snippet-icon" role="img" aria-hidden="true" class="gl-icon s16 gl-mr-3!"><use href="/assets/icons-5f28ad8ab3377176325e2edb59a58c34611f3e7e6720f4a6096d8105813fafec.svg#snippet"></use></svg> 
      Snippets
      <!----></span></span></a></div>
      </div>
    </div>
    <div data-testid="menu-subview" data-qa-selector="menu_subview_container" class="gl-w-grid-size-40 gl-overflow-hidden gl-p-3" style="display: none;"></div>
  </div>
</form>

GET /search

<form action="/search" accept-charset="UTF-8" method="get">
  <div class="gl-search-box-by-type">
    <svg class="s16 gl-search-box-by-type-search-icon gl-icon" data-testid="search-icon">
      <use href="/assets/icons-5f28ad8ab3377176325e2edb59a58c34611f3e7e6720f4a6096d8105813fafec.svg#search"></use>
    </svg>
    <input autocomplete="off" class="form-control gl-form-input gl-search-box-by-type-input" data-qa-selector="search_box" id="search" name="search" placeholder="Search GitLab" type="text">
  </div>
  <input type="hidden" name="group_id" id="group_id" value="8" autocomplete="off">
  <input type="hidden" name="project_id" id="project_id" value="1665" autocomplete="off">
  <input type="hidden" name="scope" id="scope" value="wiki_blobs" autocomplete="off">
  <input type="hidden" name="search_code" id="search_code" value="false" autocomplete="off">
  <input type="hidden" name="snippets" id="snippets" autocomplete="off">
  <input type="hidden" name="repository_ref" id="repository_ref" autocomplete="off">
  <input type="hidden" name="nav_source" id="nav_source" value="navbar" autocomplete="off">
  <kbd class="gl-absolute gl-right-3 gl-top-0 keyboard-shortcut-helper gl-z-index-1 has-tooltip" data-html="true" data-placement="bottom" title="Use the shortcut key <kbd>/</kbd> to start a search"> / </kbd>
</form>

Text Content

Skip to content
GitLab

 * * Explore Projects Groups Snippets
     

Projects Groups Snippets
 * 
   /
 * 

 * Help
    * 
    * Help
    * Support
    * Community forum
    * Keyboard shortcuts ?
    * 
    * Submit feedback
    * Contribute to GitLab

 * Register
 * Sign in

Toggle navigation Menu
 * L libxml2
 * Project information
   * Project information
   * 
   * Activity
   * Labels
   * Members
 * Repository
   * Repository
   * 
   * Files
   * Commits
   * Branches
   * Tags
   * Contributors
   * Graph
   * Compare
 * Issues 77
   * Issues 77
   * 
   * List
   * Boards
   * Service Desk
   * Milestones
 * Merge requests 6
   * Merge requests 6
 * CI/CD
   * CI/CD
   * 
   * Pipelines
   * Jobs
   * Schedules
 * Deployments
   * Deployments
   * 
   * Environments
   * Releases
 * Packages and registries
   * Packages and registries
   * 
   * Package Registry
   * Container Registry
   * Infrastructure Registry
 * Monitor
   * Monitor
   * 
   * Incidents
 * Analytics
   * Analytics
   * 
   * Value stream
   * CI/CD
   * Repository
 * Wiki
   * Wiki
 * Activity
 * Graph
 * Create a new issue
 * Jobs
 * Commits
 * Issue Boards

Collapse sidebar Close sidebar
Open sidebar
 * GNOME
 * libxml2
 * Wiki
 * Home

Last edited by Nick Wellnhofer 3 months ago
Page history


HOME




OFFICIAL RELEASES

Official releases can be downloaded from
https://download.gnome.org/sources/libxml2/


HTML DOCUMENTATION

Generated HTML documentation is available via GitLab Pages:

 * API documentation
 * Tutorial
 * Examples
 * xmllint man page
 * xmlcatalog man page


HISTORY

Libxml2 is the XML C parser and toolkit developed for the Gnome project (but
usable outside of the Gnome platform), it is free software available under the
MIT License. XML itself is a metalanguage to design markup languages, i.e. text
language where semantic and structure are added to the content using extra
"markup" information enclosed between angle brackets. HTML is the most
well-known markup language. Though the library is written in C a variety of
language bindings make it available in other environments.

Libxml2 is known to be very portable, the library should build and work without
serious troubles on a variety of systems (Linux, Unix, Windows, CygWin, MacOS,
RISC Os, OS/2, VMS, QNX, MVS, ...)

Libxml2 implements a number of existing standards related to markup languages:

 * the XML 1.0 standard: https://www.w3.org/TR/REC-xml
 * Namespaces in XML 1.0: https://www.w3.org/TR/REC-xml-names/
 * XML Base: https://www.w3.org/TR/xmlbase/
 * RFC 2396: Uniform Resource Identifiers https://www.ietf.org/rfc/rfc2396.txt
 * XML Path Language (XPath) 1.0: https://www.w3.org/TR/xpath
 * HTML4 parser: https://www.w3.org/TR/html401/
 * XML Pointer Language (XPointer) Version 1.0: https://www.w3.org/TR/xptr
 * XML Inclusions (XInclude) Version 1.0: https://www.w3.org/TR/xinclude/
 * ISO-8859-x encodings, as well as rfc2044 [UTF-8] and rfc2781 [UTF-16] Unicode
   encodings, and more if using iconv support
 * part of SGML Open Technical Resolution TR9401:1997
 * XML Catalogs Working Draft 06 August 2001:
   https://www.oasis-open.org/committees/entity/spec-2001-08-06.html
 * Canonical XML Version 1.0: https://www.w3.org/TR/xml-c14n and the Exclusive
   XML Canonicalization CR draft https://www.w3.org/TR/xml-exc-c14n
 * Relax NG, ISO/IEC 19757-2:2003,
   https://www.oasis-open.org/committees/relax-ng/spec-20011203.html
 * W3C XML Schemas 1.0: https://www.w3.org/TR/xmlschema-0/
 * W3C xml:id Working Draft 7 April 2004

In most cases libxml2 tries to implement the specifications in a relatively
strictly compliant way. As of release 2.4.16, libxml2 passed all 1800+ tests
from the OASIS XML Tests Suite.

To some extent libxml2 provides support for the following additional
specifications but doesn't claim to implement them completely:

 * Document Object Model (DOM) https://www.w3.org/TR/DOM-Level-2-Core/ the
   document model, but it doesn't implement the API itself, gdome2 does this on
   top of libxml2
 * RFC 959 : libxml2 implements a basic FTP client code
 * RFC 1945 : HTTP/1.0, again a basic HTTP client code
 * SAX: a SAX2 like interface and a minimal SAX1 implementation compatible with
   early expat versions

Here are some key points about libxml:

 * Libxml2 exports Push (progressive) and Pull (blocking) type parser interfaces
   for both XML and HTML.
 * Libxml2 can do DTD validation at parse time, using a parsed document
   instance, or with an arbitrary DTD.
 * Libxml2 includes complete XPath 1.0, XPointer and XInclude 1.0
   implementations.
 * It is written in plain C, making as few assumptions as possible, and sticking
   closely to ANSI C/POSIX for easy embedding. Works on Linux/Unix/Windows,
   ported to a number of other platforms.
 * Basic support for HTTP and FTP client allowing applications to fetch remote
   resources.
 * The design is modular, most of the extensions can be compiled out.
 * The internal document representation is as close as possible to the DOM
   interfaces.
 * Libxml2 also has a SAX like interface; the interface is designed to be
   compatible with Expat.
 * This library is released under the MIT License. See the Copyright file in the
   distribution for the precise wording.


LANGUAGE BINDINGS

There are a number of language bindings and wrappers available for libxml2, the
list below is not exhaustive.

 * Libxml++ seems the most up-to-date C++ bindings for libxml2, check the
   documentation and the examples.
 * xmlwrapp, a C++ library built atop libxml2.
 * XML::LibXML Perl bindings are available on CPAN, as well as XML::LibXSLT Perl
   libxslt bindings.
 * If you're interested into scripting XML processing, have a look at XSH an XML
   editing shell based on Libxml2 Perl bindings.
 * Petr Kozelka provides Pascal units to glue libxml2 with Kylix, Delphi and
   other Pascal compilers.
 * Uwe Fechner also provides idom2, a DOM2 implementation for Kylix2/D5/D6 from
   Borland.
 * There are bindings for Ruby and libxml2 bindings are also available in Ruby
   through Nokogiri.
 * Steve Ball and contributors maintains libxml2 and libxslt bindings for Tcl.
 * libxml2 and libxslt are the default XML libraries for PHP5.
 * LibxmlJ is an effort to create a 100% JAXP-compatible Java wrapper for
   libxml2 and libxslt as part of GNU ClasspathX project.
 * Patrick McPhee provides Rexx bindings for libxml2 and libxslt, look for
   RexxXML.
 * Satimage provides XMLLib osax. This is an osax for Mac OS X with a set of
   commands to implement in AppleScript the XML DOM, XPATH and XSLT. Also
   includes commands for Property-lists (Apple's fast lookup table XML format.)
 * Francesco Montorsi developed wxXml2 wrappers that interface libxml2, allowing
   wxWidgets applications to load/save/edit XML instances.


CONTRIBUTIONS

 * Bjorn Reese, William Brack and Thomas Broyer have provided a number of
   patches, Gary Pennington worked on the validation API, threading support and
   Solaris port.
 * John Fleck helps maintaining the documentation and man pages.
 * Igor Zlatkovic is now the maintainer of the Windows port, he provides
   binaries
 * Felix Natter and Geert Kloosterman provide an emacs module to lookup
   libxml(2) functions documentation
 * Ziying Sherwin provided man pages
 * Dave Kuhlman provided the first version of libxml/libxslt wrappers for Python
 * Aleksey Sanin implemented the XML Canonicalization and XML Digital Signature
   implementations for libxml2

Clone repository
 * Architecture
 * Catalog support
 * Encodings support
 * Entities
 * FAQ
 * IO interfaces
 * Memory management
 * Namespaces
 * Parser interfaces
 * Python bindings
 * Reader Interface
 * SAX interface
 * Thread safety
 * Tree structure
 * Validation and DTDs

View All Pages


MENU

Explore Projects Groups Snippets