catalogResolve {XML} | R Documentation |
Look up an element via the XML catalog mechanism
Description
XML parsers use a catalog to map generic system and public addresses
to actual local files or potentially different remote files.
We can use a catalog to map a reference such as
https://www.omegahat.net/XSL/
to a particular
directory on our local machine and then not have to
modify any of the documents if we move the local files to another
directory, e.g. install a new version in an alternate directory.
This function provides a mechanism to query the catalog to resolve a URI, PUBLIC or SYSTEM identifier.
This is now vectorized, so accepts a character vector of
URIs and recycles type
to have the same length.
If an entry is not resolved via the catalog system,
a NA
is returned for that element.
To leave the value unaltered in this case, use asIs = TRUE
.
Usage
catalogResolve(id, type = "uri", asIs = FALSE, debug = FALSE)
Arguments
id |
the name of the (generic) element to be resolved |
type |
a string, specifying whether the lookup is for a uri, system or public element |
asIs |
a logical. If |
debug |
logical value indicating whether to turn on debugging
output written to the console ( |
Value
A character vector. If the element was resolved, the single element is the resolved value. Otherwise, the character vector will contain no elements.
Author(s)
Duncan Temple Lang
References
See Also
Examples
if(!exists("Sys.setenv")) Sys.setenv = Sys.putenv
Sys.setenv("XML_CATALOG_FILES" = system.file("exampleData", "catalog.xml", package = "XML"))
catalogResolve("-//OASIS//DTD DocBook XML V4.4//EN", "public")
catalogResolve("https://www.omegahat.net/XSL/foo.xsl")
catalogResolve("https://www.omegahat.net/XSL/article.xsl", "uri")
catalogResolve("https://www.omegahat.net/XSL/math.xsl", "uri")
# This one does not resolve anything, returning an empty value.
catalogResolve("http://www.oasis-open.org/docbook/xml/4.1.2/foo.xsl", "uri")
# Vectorized and returns NA for the first and /tmp/html.xsl
# for the second.
catalogAdd("http://made.up.domain", "/tmp")
catalogResolve(c("ddas", "http://made.up.domain/html.xsl"), asIs = TRUE)