First Steps
Setup
How To Use
Xml Model
QNames
Creating QNames
Directly
With Sugar
Namespaces & Scope
Namespaces in Scales
Type System FTW
Runtime Validation
Equality
via Scalaz Equal and Scales Equiv
Testing For QNames
Serializing QNames
XML Version Support
Differences Between Xml 1.0 and 1.1
Scales Support for Both Versions
In Parser We Trust - Users We Protect
Runtime XmlVersion QName Related Correctness
Attributes
Defining
Explicitly
Implicitly
Equality
Within an Elem
Attributes ListSet
Testing Against QNames or Namespaces
Elem
XML Elements
Declaring
QName And Namespace Correctness
Elems Are Reusable
Runtime Validation Checks
XmlItem
Declaring
XmlItems Are Reusable
Runtime Correctness Checks
Serializing XmlItems
Serializing CData
Xml DSL and Trees
Tour of the DSL
Creating a Tree
Adding To The Tree
Adding an Attribute
Setting Text
Removing Children
Removing Attributes
Optional XML
Folding Within The DSL
Optional Xml DSL
Cascading Optionals
Accessing and Querying Data
XPath Embedded DSL
Simple Usage Examples
XPath Crash Course
XPath Axe
Node Tests
Predicates
Predicate Construction
Chaining Predicates
Positional Predicates
Direct Filtering
Unsorted Results and Views
XPath Functions
Organisation
QName Functions
Text Functions
Boolean Function
XPath 1.0 String Evaluation
How To Use
Other Jaxen Tricks
Parsing XML
Full XML Doc Parsing
Direct SAX XMLReader Usage
Pull Parsing
Pull Model
Resource Management
Simple Reading Of Repeated Sections
Buffering And Identifying Xml Messages
Pulling Repeated Sections
Supported Repeating Section Examples
Alternating and Repeating Elements
Grouped Repeating
Repeating Nested
Sectioned Grouped Repeating
Pull Parsing ResumableIter'atees
Async Pull
Integrating With Enumeratees - enumToMany
Asyc Pull with enumToMany
Serializing & Transforming XML
Serializing
writeTo & writeTo
What Can Be Serialized?
Folding Xml
PathFoldR - Catchy Result Type
Composing Transformations
ReplaceWith - Nested
& - Fail Early
| - Try The Next
TrAX & XSLT Support
Simple Usage Example
Xml Equality
Xml Equality Basics
How To Use
Types Covered
Why Join Adjacent Text and CData?
Removing Comments and PIs
Why Not Use Canonical Xml?
XmlComparison - Where Is It Different?
The compare Function
The calculate Parameter
ComparisonContext
Return Value
XmlDifference
QName Token Handling
Technical Details
Memory Optimisation
Disclaimer
Introduction
Options for memory optimisation
Resulting Sizes
Memory Consumption During Parsing
Overall Parsing Performance
Special Case - Pull Parsing via onQNames
General Memory Optimisation Details
ImmutableArrayProxy
EitherLike
TreeOptimisation
QName and Elem Memory Usage
TreeProxies and Builders
Serializing Details
Encoding
XML Names
Text Data
Other Markup Character Data
Creating a SerializerFactory
Scales Xml 0.5.0
Generated Documentation
SXR Source
ScalaDocs
Documentation Highlights
Overview
Memory and Performance
First Steps
Setup
How To Use
Xml Model
QNames
Creating QNames
Directly
With Sugar
Namespaces & Scope
Namespaces in Scales
Type System FTW
Runtime Validation
Equality
via Scalaz Equal and Scales Equiv
Testing For QNames
Serializing QNames
XML Version Support
Differences Between Xml 1.0 and 1.1
Scales Support for Both Versions
In Parser We Trust - Users We Protect
Runtime XmlVersion QName Related Correctness
Attributes
Defining
Explicitly
Implicitly
Equality
Within an Elem
Attributes ListSet
Testing Against QNames or Namespaces
Elem
XML Elements
Declaring
QName And Namespace Correctness
Elems Are Reusable
Runtime Validation Checks
XmlItem
Declaring
XmlItems Are Reusable
Runtime Correctness Checks
Serializing XmlItems
Serializing CData
Xml DSL and Trees
Tour of the DSL
Creating a Tree
Adding To The Tree
Adding an Attribute
Setting Text
Removing Children
Removing Attributes
Optional XML
Folding Within The DSL
Optional Xml DSL
Cascading Optionals
Accessing and Querying Data
XPath Embedded DSL
Simple Usage Examples
XPath Crash Course
XPath Axe
Node Tests
Predicates
Predicate Construction
Chaining Predicates
Positional Predicates
Direct Filtering
Unsorted Results and Views
XPath Functions
Organisation
QName Functions
Text Functions
Boolean Function
XPath 1.0 String Evaluation
How To Use
Other Jaxen Tricks
Parsing XML
Full XML Doc Parsing
Direct SAX XMLReader Usage
Pull Parsing
Pull Model
Resource Management
Simple Reading Of Repeated Sections
Buffering And Identifying Xml Messages
Pulling Repeated Sections
Supported Repeating Section Examples
Alternating and Repeating Elements
Grouped Repeating
Repeating Nested
Sectioned Grouped Repeating
Pull Parsing ResumableIter'atees
Async Pull
Integrating With Enumeratees - enumToMany
Asyc Pull with enumToMany
Serializing & Transforming XML
Serializing
writeTo & writeTo
What Can Be Serialized?
Folding Xml
PathFoldR - Catchy Result Type
Composing Transformations
ReplaceWith - Nested
& - Fail Early
| - Try The Next
TrAX & XSLT Support
Simple Usage Example
Xml Equality
Xml Equality Basics
How To Use
Types Covered
Why Join Adjacent Text and CData?
Removing Comments and PIs
Why Not Use Canonical Xml?
XmlComparison - Where Is It Different?
The compare Function
The calculate Parameter
ComparisonContext
Return Value
XmlDifference
QName Token Handling
Technical Details
Memory Optimisation
Disclaimer
Introduction
Options for memory optimisation
Resulting Sizes
Memory Consumption During Parsing
Overall Parsing Performance
Special Case - Pull Parsing via onQNames
General Memory Optimisation Details
ImmutableArrayProxy
EitherLike
TreeOptimisation
QName and Elem Memory Usage
TreeProxies and Builders
Serializing Details
Encoding
XML Names
Text Data
Other Markup Character Data
Creating a SerializerFactory