The class Atom provides an XML node for text (PCDATA).
The class Atom provides an XML node for text (PCDATA).
It is used in both non-bound and bound XML representations.
The Attribute trait defines the interface shared by both
scala.xml.PrefixedAttribute and scala.xml.UnprefixedAttribute.
The class Comment implements an XML node for comments.
The class Comment implements an XML node for comments.
the text contained in this node, may not contain "--"
A document information item (according to InfoSet spec).
A document information item (according to InfoSet spec). The comments
are copied from the Infoset spec, only augmented with some information
on the Scala types for definitions that might have no value.
Also plays the role of an XMLEvent for pull parsing.
An immutable data object representing an XML element.
An immutable data object representing an XML element.
Child elements can be other Elems or any one of the other Node types.
XML attributes are implemented with the scala.xml.MetaData base class.
Optional XML namespace scope is represented by scala.xml.NamespaceBinding.
The class EntityRef implements an XML node for entity references.
The class EntityRef implements an XML node for entity references.
the name of the entity reference, for example amp.
A hack to group XML nodes in one node for output.
This class represents an attribute and at the same time a linked list of attributes.
This class represents an attribute and at the same time a linked list of attributes. Every instance of this class is either
UnprefixedAttribute key,value orPrefixedAttribute namespace_prefix,key,value orNull, the empty attribute list. Namespace URIs are obtained by using the namespace scope of the element
owning this attribute (see getNamespace).
The class NamespaceBinding represents namespace bindings
and scopes.
The class NamespaceBinding represents namespace bindings
and scopes. The binding for the default namespace is treated as a null
prefix. the absent namespace is represented with the null uri. Neither
prefix nor uri may be empty, which is not checked.
An abstract class representing XML with nodes of a labeled tree.
An abstract class representing XML with nodes of a labeled tree. This class contains an implementation of a subset of XPath for navigation.
This class acts as a Buffer for nodes.
This class acts as a Buffer for nodes. If it is used as a sequence of
nodes collection.Seq[Node], it must be ensured that no updates occur after that
point, because scala.xml.Node is assumed to be immutable.
Despite this being a sequence, don't use it as key in a hashtable. Calling the hashcode function will result in a runtime error.
This class implements a wrapper around collection.Seq[Node] that adds XPath
and comprehension methods.
This class (which is not used by all XML parsers, but always used by the XHTML one) represents parseable character data, which appeared as CDATA sections in the input and is to be preserved as CDATA section in the output.
prefixed attributes always have a non-null namespace.
Class for pretty printing.
Class for pretty printing. After instantiating, you can use the format() and formatNode() methods to convert XML to a formatted string. The class can be reused to pretty print any number of XML nodes.
an XML node for processing instructions (PI)
an XML node for processing instructions (PI)
target name of this PI
text contained in this node, may not contain "?>"
SpecialNode is a special XML node which represents either text
(PCDATA), a comment, a PI, or an entity ref.
SpecialNode is a special XML node which represents either text
(PCDATA), a comment, a PI, or an entity ref.
SpecialNodes also play the role of scala.xml.pull.XMLEvents for
pull-parsing.
The class Text implements an XML node for text (PCDATA).
The class Text implements an XML node for text (PCDATA).
It is used in both non-bound and bound XML representations.
The class TextBuffer is for creating text nodes without surplus
whitespace.
The class TextBuffer is for creating text nodes without surplus
whitespace. All occurrences of one or more whitespace in strings
appended with the append method will be replaced by a single space
character, and leading and trailing space will be removed completely.
An XML node for unparsed content.
An XML node for unparsed content. It will be output verbatim, all bets are off regarding wellformedness etc.
Unprefixed attributes have the null namespace, and no prefix field
This singleton object contains the apply and unapply methods for
convenient construction and deconstruction.
This singleton object contains the apply and unapplySeq methods for
convenient construction and deconstruction.
This singleton object contains the apply and unapplySeq methods for
convenient construction and deconstruction. It is possible to deconstruct
any Node instance (that is not a SpecialNode or a Group) using the
syntax case Elem(prefix, label, attribs, scope, child @ _*) => ...
In an attempt to contain the damage being inflicted on consistency by the
ad hoc equals methods spread around xml, the logic is centralized and
all the xml classes go through the xml.Equality trait.
In an attempt to contain the damage being inflicted on consistency by the
ad hoc equals methods spread around xml, the logic is centralized and
all the xml classes go through the xml.Equality trait. There are two
forms of xml comparison.
def strict_==(other: scala.xml.Equality) This one tries to honor the little things like symmetry and hashCode
contracts. The equals method routes all comparisons through this.
xml_==(other: Any) This one picks up where strict_== leaves off. It might declare any two
things equal.
As things stood, the logic not only made a mockery of the collections equals contract, but also laid waste to that of case classes.
Among the obstacles to sanity are/were:
Node extends NodeSeq extends collection.Seq[Node] MetaData extends Iterable[MetaData] The hacky "Group" xml node which throws exceptions with wild abandon, so don't get too close Rampant asymmetry and impossible hashCodes Most classes claiming to be equal to "String" if some specific stringification of it was the same. String was never going to return the favor.
Governs how empty elements (i.e.
Governs how empty elements (i.e. those without child elements) should be serialized.
This singleton object contains the unapplySeq method for
convenient deconstruction.
This object ...
Essentially, every method in here is a dummy, returning Zero[T].
Essentially, every method in here is a dummy, returning Zero[T]. It provides a backstop for the unusual collection defined by MetaData, sort of a linked list of tails.
This singleton object contains the applyand unapply methods for
convenient construction and deconstruction.
This object provides an extractor method to match a qualified node with its namespace URI
This singleton object contains the applyand unapply methods for
convenient construction and deconstruction.
top level namespace scope.
top level namespace scope. only contains the predefined binding for the "xml" prefix which is bound to "http://www.w3.org/XML/1998/namespace"
This singleton object contains the applyand unapply methods for
convenient construction and deconstruction.
The Utility object provides utility functions for processing instances
of bound and not bound XML classes, as well as escaping text nodes.
The object XML provides constants, and functions to load
and save XML elements.
The object XML provides constants, and functions to load
and save XML elements. Use this when data binding is not desired, i.e.
when XML is handled using Symbol nodes.
Classes needed to view an XML document as a series of events.
Classes needed to view an XML document as a series of events. The document is parsed by an scala.xml.pull.XMLEventReader instance. You can treat it as an scala.collection.Iterator to retrieve the events, which are all subclasses of scala.xml.pull.XMLEvent.
scala> val source = Source.fromString("""1.0" encoding="UTF-8" standalone="yes"?> customvalue"?> BAR"> ]>Hello """) source: scala.io.Source = non-empty iterator scala> val reader = new XMLEventReader(source) reader: scala.xml.pull.XMLEventReader = non-empty iterator scala> reader.foreach{ println(_) } EvProcInstr(instruction,custom value="customvalue") EvText( ) EvElemStart(null,foo,,) EvText(Hello) EvComment( this is a comment ) EvElemStart(null,bar,,) EvText(BAR) EvElemEnd(null,bar) EvElemStart(null,bar,,) EvEntityRef(gt) EvElemEnd(null,bar) EvElemEnd(null,foo) EvText( )&bar; >
This library provides support for the XML literal syntax in Scala programs.
Additionally, you can mix Scala expressions in your XML elements by using the curly brace notation:
An XML element, for example
<star/>and<planet/>, is represented in this library as a case class, scala.xml.Elem.The sub-elements of XML values share a common base class, scala.xml.Node.
However, the non-element declarations found in XML files share a different common base class, scala.xml.dtd.Decl. Additionally, document type declarations are represented by a different trait, scala.xml.dtd.DTD.
For reading and writing XML data to and from files, see scala.xml.XML. The default parser of XML data is the Xerces parser and is provided in Java by javax.xml.parsers.SAXParser.
A less greedy XML reader can return data as a sequential collection of events, see scala.xml.pull.XMLEventReader.
For more control of the input, use the parser written in Scala that is provided, scala.xml.parsing.ConstructingParser.
For working with XHTML input, use scala.xml.parsing.XhtmlParser.
For more control of the output, use the scala.xml.PrettyPrinter.
Utility methods for working with XML data are provided in scala.xml.Utility.
XML values in Scala are immutable, but you can traverse and transform XML data with a scala.xml.transform.RuleTransformer.