#' @name registerISOMetadataSchema
#' @aliases registerISOMetadataSchema
#' @title registerISOMetadataSchema
#' @export
#' @description \code{registerISOMetadataSchema} allows to register a new schema
#' in \pkg{geometa}
#'
#' @usage registerISOMetadataSchema(xsdFile)
#'
#' @param xsdFile the schema XSD file
#'
#' @examples
#' registerISOMetadataSchema(xsdFile = "http://www.isotc211.org/2005/gmd/gmd.xsd")
#'
#' @author Emmanuel Blondel, \email{emmanuel.blondel1@@gmail.com}
#
registerISOMetadataSchema <- function(xsdFile){
schemas <- tryCatch(
XML::xmlParse(
xsdFile, isSchema = TRUE, xinclude = TRUE,
error = function (msg, code, domain, line, col, level, filename, class = "XMLError"){}
)
)
.geometa.iso$schemas <- schemas
}
#'getISOMetadataSchemaFile
#'@export
getISOMetadataSchemaFile <- function(version = "19115-1/2"){
available_versions <- c("19115-1/2","19115-3")
if(!version %in% available_versions){
errMsg <- sprintf("Version '%s' not among available schema versions (%s)",
version, paste0(available_versions, collapse = ","))
stop(errMsg)
}
schemaPath <- "extdata/schemas"
namespace <- switch(version,
"19115-1/2" = "19115/-1/gmd",
"19115-3" = "19115/-3/mdb/2.0"
)
xsdFilename <- switch(version,
"19115-1/2" = "gmd.xsd",
"19115-3" = "mdb.xsd"
)
defaultXsdFile <- system.file(paste(schemaPath, namespace, sep="/"), xsdFilename, package = "geometa", mustWork = TRUE)
return(defaultXsdFile)
}
#'setISOMetadataSchemas
#'@export
setISOMetadataSchemas <- function(version = "19115-1/2"){
packageStartupMessage("Loading ISO 19139 XML schemas...")
registerISOMetadataSchema(getISOMetadataSchemaFile(version = version))
}
#' @name getISOMetadataSchemas
#' @aliases getISOMetadataSchemas
#' @title getISOMetadataSchemas
#' @export
#' @description \code{getISOMetadataSchemas} gets the schemas registered in \pkg{geometa}
#'
#' @usage getISOMetadataSchemas()
#'
#' @examples
#' getISOMetadataSchemas()
#'
#' @author Emmanuel Blondel, \email{emmanuel.blondel1@@gmail.com}
#
getISOMetadataSchemas <- function(){
return(.geometa.iso$schemas)
}
#' @name setMetadataStandard
#' @aliases setMetadataStandard
#' @title setMetadataStandard
#' @export
#' @description \code{setMetadataStandard} allows to set the standard to use for encoding/decoding in \pkg{geometa}.
#' By default the standard "19115-1/2" will be used. Possible alternative value "19115-3"
#'
#' @usage setMetadataStandard(version)
#'
#' @param version the standard version
#'
#' @examples
#' setMetadataStandard(version = "19115-3")
#'
#' @author Emmanuel Blondel, \email{emmanuel.blondel1@@gmail.com}
#
setMetadataStandard <- function(version = "19115-1/2"){
available_versions <- c("19115-1/2","19115-3")
if(!version %in% available_versions){
errMsg <- sprintf("Version '%s' not among available schema versions (%s)",
version, paste0(available_versions, collapse = ","))
stop(errMsg)
}
.geometa.iso$version <- version
setISOMetadataNamespaces(version = version)
}
#' @name getMetadataStandard
#' @aliases getMetadataStandard
#' @title getMetadataStandard
#' @export
#' @description \code{getMetadataStandard} allows to set the standard to use for encoding/decoding in \pkg{geometa}.
#'
#' @usage getMetadataStandard()
#'
#' @examples
#' getMetadataStandard()
#'
#' @author Emmanuel Blondel, \email{emmanuel.blondel1@@gmail.com}
#
getMetadataStandard <- function(){
return(.geometa.iso$version)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.