All Projects → dvreeze → Yaidom

dvreeze / Yaidom

Licence: apache-2.0
Yet another immutable XML DOM-like API

Programming Languages

scala
5932 projects

Labels

Projects that are alternatives of or similar to Yaidom

Xml Comp
Compare ANY markup documents.
Stars: ✭ 16 (-40.74%)
Mutual labels:  xml
Music Player
Android xml template layout for media/music player.
Stars: ✭ 24 (-11.11%)
Mutual labels:  xml
Gulp Xslt
XSLT transformation plugin for gulp
Stars: ✭ 9 (-66.67%)
Mutual labels:  xml
Wed
Wed is a web-based editor that assists users in editing XML documents according to a schema.
Stars: ✭ 17 (-37.04%)
Mutual labels:  xml
Cheatyxml
CheatyXML is a Swift framework designed to manage XML easily
Stars: ✭ 23 (-14.81%)
Mutual labels:  xml
Draggablelayout
Draggable XML Layout for Android
Stars: ✭ 26 (-3.7%)
Mutual labels:  xml
Cardinalpgm Maps
Make OCN Great Again!
Stars: ✭ 6 (-77.78%)
Mutual labels:  xml
En Data mining
Data Mining Historical Newspaper Metadata (METS/ALTO formats)
Stars: ✭ 14 (-48.15%)
Mutual labels:  xml
Snowflake
❄️ SVG in Swift
Stars: ✭ 924 (+3322.22%)
Mutual labels:  xml
Litedb Webshell
Web Shell console application for LiteDB
Stars: ✭ 8 (-70.37%)
Mutual labels:  xml
Vast Parser
Recursively requests and parses VAST chains into a single JavaScript object.
Stars: ✭ 18 (-33.33%)
Mutual labels:  xml
Xylophone
Xylophone
Stars: ✭ 23 (-14.81%)
Mutual labels:  xml
Essa
Embeddable SCADA for Small Applications
Stars: ✭ 7 (-74.07%)
Mutual labels:  xml
Fuzi
A fast & lightweight XML & HTML parser in Swift with XPath & CSS support
Stars: ✭ 894 (+3211.11%)
Mutual labels:  xml
Xml Js
Converter utility between XML text and Javascript object / JSON text.
Stars: ✭ 874 (+3137.04%)
Mutual labels:  xml
Easyxml
Simplifies parsing and modifying of (huge) XML streams (files) based on the StAX parser with combination of JAXB or JDom2
Stars: ✭ 6 (-77.78%)
Mutual labels:  xml
Ps Webapi
(Migrated from CodePlex) Let PowerShell Script serve or command-line process as WebAPI. PSWebApi is a simple library for building ASP.NET Web APIs (RESTful Services) by PowerShell Scripts or batch/executable files out of the box.
Stars: ✭ 24 (-11.11%)
Mutual labels:  xml
Treefrog Framework
TreeFrog Framework : High-speed C++ MVC Framework for Web Application
Stars: ✭ 885 (+3177.78%)
Mutual labels:  xml
Supervisord
Async first supervisord HTTP API Client for PHP 7
Stars: ✭ 14 (-48.15%)
Mutual labels:  xml
Xmlbuilder Js
An XML builder for node.js
Stars: ✭ 843 (+3022.22%)
Mutual labels:  xml

====== Yaidom

Yaidom is a uniform XML query API, written in Scala. Equally important, yaidom provides several specific-purpose DOM-like tree implementations adhering to this XML query API. What's more, other implementations can easily be added.

Yaidom initially stood for yet another (Scala) immutable DOM-like API. Over time, the yaidom XML query API grew more important than any single DOM-like tree implementation, whether immutable or mutable. Currently, the name yaidom reflects the ease with which new DOM-like tree implementations can be added, while having them conform to the yaidom query API.

Why do we need yet another Scala (tree-oriented) XML library? After all, there are alternatives such as the standard Scala XML library. Indeed, yaidom has several nice properties:

  • the uniform XML query API, playing well with the Scala Collections API (and leveraging it internally)
  • multiple (existing or future) specific-purpose DOM-like tree implementations, conforming to this XML query API
  • among them, a nice immutable "default" DOM-like tree implementation
  • precise and first-class namespace support
  • precision, clarity and minimality in its genes, at the expense of some (but not much) verbosity and lack of XPath support
  • acceptance of some XML realities, such as the peculiarities of "XML equality" and whitespace in XML
  • and therefore no attempt to abstract JAXP away during parsing/serialization, but instead leveraging it (for parsing/serializing)
  • easy conversions between several element implementations
  • support for so-called yaidom dialects, using abstract query API traits for the backing elements and therefore supporting multiple XML backends
  • a scope mainly limited to basic namespace-aware XML processing, and therefore not offering any XSD and DTD support

Usage

Yaidom versions can be found in the Maven central repository. Assuming version 1.11.0, yaidom can be added as dependency as follows (in an SBT or Maven build):

SBT::

libraryDependencies += "eu.cdevreeze.yaidom" %%% "yaidom" % "1.11.0"

Maven2::

<dependency>
  <groupId>eu.cdevreeze.yaidom</groupId>
  <artifactId>yaidom_2.13</artifactId>
  <version>1.11.0</version>
</dependency>

Note that yaidom itself has a few dependencies, which will be transitive dependencies in projects that use yaidom. Yaidom has been cross-built for several Scala versions, leading to artifactIds referring to different Scala (binary) versions.

One transitive dependency is Saxon-HE (9.9). If Saxon-EE is used in combination with yaidom, the Saxon-HE dependency must be explicitly excluded!

Yaidom (1.8.X and later) requires Java version 1.8 or later!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].