Public Variables and Functions
aggregate-xmlns
function
Usage: (aggregate-xmlns xml)
Put all occurring xmlns into the root
Source
alias-uri
function
Usage: (alias-uri & {:as alias-nss})
Define a Clojure namespace aliases for xmlns uris.
This sets up the current namespace for reading qnames denoted with
Clojure's ::alias/keywords reader feature.
## Example
(alias-uri :D "DAV:")
; similar in effect to
;; (require '[xmlns.DAV%3A :as D])
; but required namespace is auto-created
; henceforth, shorthand keywords can be used
{:tag ::D/propfind}
; ::D/propfind will be expanded to :xmlns.DAV%3A/propfind
; in the current namespace by the reader
## Clojurescript support
Currently, namespaces can't be auto-created in Clojurescript.
Dummy files for aliased uris have to exist. Have a look at `uri-file` and `print-uri-file-command!` to create those.
Source
cdata
function
Usage: (cdata content)
Create a CData node
Source
element
function
Usage: (element tag)
(element tag attrs)
(element tag attrs & content)
Create an xml Element from content varargs
Source
element*
function
Usage: (element* tag attrs content meta)
(element* tag attrs content)
Create an xml element from a content collection and optional metadata
Source
element-nss
function
Usage: (element-nss {:keys [attrs], :as element})
Get xmlns environment from element
Source
emit
function
Usage: (emit e writer & {:as opts})
Prints the given Element tree as XML text to stream.
Options:
:encoding <str> Character encoding to use
:doctype <str> Document type (DOCTYPE) declaration to use
Source
emit-str
function
Usage: (emit-str e & opts)
Emits the Element to String and returns it.
Options:
:encoding <str> Character encoding to use
:doctype <str> Document type (DOCTYPE) declaration to use
Source
event-seq
function
Usage: (event-seq source {:keys [include-node? location-info coalescing supporting-external-entities allocator namespace-aware replacing-entity-references validating reporter resolver support-dtd], :or {include-node? #{:characters :element}, location-info true, coalescing true, supporting-external-entities false}})
Parses an XML input source into a lazy sequence of pull events.
Input source can be a java.io.InputStream or java.io.Reader
Options:
:include-node? subset of #{:element :characters :comment}, default #{:element :characters}
:location-info pass false to skip generating location meta data, default true
See https://docs.oracle.com/javase/8/docs/api/javax/xml/stream/XMLInputFactory.html
for documentation on xml options. These are the defaults:
{:allocator nil ; XMLInputFactory/ALLOCATOR
:coalescing true ; XMLInputFactory/IS_COALESCING
:namespace-aware true ; XMLInputFactory/IS_NAMESPACE_AWARE
:replacing-entity-references true ; XMLInputFactory/IS_REPLACING_ENTITY_REFERENCES
:supporting-external-entities false ; XMLInputFactory/IS_SUPPORTING_EXTERNAL_ENTITIES
:validating false ; XMLInputFactory/IS_VALIDATING
:reporter nil ; XMLInputFactory/REPORTER
:resolver nil ; XMLInputFactory/RESOLVER
:support-dtd true ; XMLInputFactory/SUPPORT_DTD
}
Source
find-xmlns
function
Usage: (find-xmlns xml)
Find all xmlns occuring in a root
Source
indent
function
Usage: (indent e writer & opts)
Emits the XML and indents the result. WARNING: this is slow
it will emit the XML and read it in again to indent it. Intended for
debugging/testing only.
Source
indent-str
function
Usage: (indent-str e & opts)
Emits the XML and indents the result. Writes the results to a String and returns it
Source
parse
function
Usage: (parse source & {:keys [include-node? location-info coalescing supporting-external-entities allocator namespace-aware replacing-entity-references validating reporter resolver support-dtd], :or {include-node? #{:characters :element}, location-info true, coalescing true, supporting-external-entities false}})
Parses an XML input source into a a tree of Element records.
The element tree is realized lazily, so huge XML files can be streamed through a depth-first tree walk.
Input source can be a java.io.InputStream or java.io.Reader
Options:
:include-node? subset of #{:element :characters :comment}, default #{:element :characters}
:location-info pass false to skip generating location meta data, default true
See https://docs.oracle.com/javase/8/docs/api/javax/xml/stream/XMLInputFactory.html
for documentation on xml options. These are the defaults:
{:allocator nil ; XMLInputFactory/ALLOCATOR
:coalescing true ; XMLInputFactory/IS_COALESCING
:namespace-aware true ; XMLInputFactory/IS_NAMESPACE_AWARE
:replacing-entity-references true ; XMLInputFactory/IS_REPLACING_ENTITY_REFERENCES
:supporting-external-entities false ; XMLInputFactory/IS_SUPPORTING_EXTERNAL_ENTITIES
:validating false ; XMLInputFactory/IS_VALIDATING
:reporter nil ; XMLInputFactory/REPORTER
:resolver nil ; XMLInputFactory/RESOLVER
:support-dtd true ; XMLInputFactory/SUPPORT_DTD
}
Source
parse-str
function
Usage: (parse-str string & {:keys [include-node? location-info coalescing supporting-external-entities allocator namespace-aware replacing-entity-references validating reporter resolver support-dtd], :or {include-node? #{:characters :element}, location-info true, coalescing true, supporting-external-entities false}})
Parses an XML String into a a tree of Element records.
Options:
:include-node? subset of #{:element :characters :comment}, default #{:element :characters}
:location-info pass false to skip generating location meta data, default true
See https://docs.oracle.com/javase/8/docs/api/javax/xml/stream/XMLInputFactory.html
for documentation on xml options. These are the defaults:
{:allocator nil ; XMLInputFactory/ALLOCATOR
:coalescing true ; XMLInputFactory/IS_COALESCING
:namespace-aware true ; XMLInputFactory/IS_NAMESPACE_AWARE
:replacing-entity-references true ; XMLInputFactory/IS_REPLACING_ENTITY_REFERENCES
:supporting-external-entities false ; XMLInputFactory/IS_SUPPORTING_EXTERNAL_ENTITIES
:validating false ; XMLInputFactory/IS_VALIDATING
:reporter nil ; XMLInputFactory/REPORTER
:resolver nil ; XMLInputFactory/RESOLVER
:support-dtd true ; XMLInputFactory/SUPPORT_DTD
}
Source
print-uri-file-command!
function
Usage: (print-uri-file-command! uri)
Shell command to create a dummy file for xmlns. Execute from a source root.
Source
qname-local
function
Usage: (qname-local v)
Get the name for this qname
Source
qname-uri
function
Usage: (qname-uri v)
Get the namespace uri for this qname
Source
sexp-as-element
function
Usage: (sexp-as-element sexp)
Convert a single sexp into an Element
Source
sexps-as-fragment
function
Usage: (sexps-as-fragment)
(sexps-as-fragment sexp)
(sexps-as-fragment sexp & sexps)
Convert a compact prxml/hiccup-style data structure into the more formal
tag/attrs/content format. A seq of elements will be returned, which may
not be suitable for immediate use as there is no root element. See also
sexp-as-element.
The format is [:tag-name attr-map? content*]. Each vector opens a new tag;
seqs do not open new tags, and are just used for inserting groups of elements
into the parent tag. A bare keyword not in a vector creates an empty element.
To provide XML conversion for your own data types, extend the AsElements
protocol to them.
Source
uri-file
function
Usage: (uri-file uri)
Dummy file name for :require'ing xmlns uri
Source
function
Usage: (xml-comment content)
Create a Comment node
Source
Public Variables and Functions
->CDataEvent
function
Usage: (->CDataEvent str)
Positional factory function for class clojure.data.xml.event.CDataEvent.
Source
->CharsEvent
function
Usage: (->CharsEvent str)
Positional factory function for class clojure.data.xml.event.CharsEvent.
Source
function
Usage: (->CommentEvent str)
Positional factory function for class clojure.data.xml.event.CommentEvent.
Source
->EmptyElementEvent
function
Usage: (->EmptyElementEvent tag attrs nss location-info)
Positional factory function for class clojure.data.xml.event.EmptyElementEvent.
Source
->QNameEvent
function
Usage: (->QNameEvent qn)
Positional factory function for class clojure.data.xml.event.QNameEvent.
Source
->StartElementEvent
function
Usage: (->StartElementEvent tag attrs nss location-info)
Positional factory function for class clojure.data.xml.event.StartElementEvent.
Source
element-nss
function
Usage: (element-nss {:keys [attrs], :as element})
Get xmlns environment from element
Source