Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Custom Namespace registry

This new optional feature allows an administrator to provide a list of custom namespace prefixes , which overrides the standard namespace registry used by Modeshapethat will override the default prefix registry. The custom namespaces can be are loaded on start-up via a YAML file with the path given to the application and the .  The namespaces can be modified while Fedora is operational with the modifications only taking several minutes to propagate.running.  Changes may take a few minutes to take effect.

Below is a sample YAML namespace configuration file, Let us assume somewhere on the same file system Fedora is installed upon, the following YAML file named custom_namespaces.yml exists.  

Code Block
premis: http://www.loc.gov/premis/rdf/v1#
test: info:fedora/test/
memento: http://mementoweb.org/ns#
rdfs: http://www.w3.org/2000/01/rdf-schema#
webac: http://fedora.info/definitions/v4/webac#
acl: http://www.w3.org/ns/auth/acl#
vcard: http://www.w3.org/2006/vcard/ns#
iana: http://www.iana.org/assignments/relation/
xsi: http://www.w3.org/2001/XMLSchema-instance
xmlns: http://www.w3.org/2000/xmlns/
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
xml: http://www.w3.org/XML/1998/namespace
ebucore: http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#
ldp: http://www.w3.org/ns/ldp#
dcterms: http://purl.org/dc/terms/
xs: http://www.w3.org/2001/XMLSchema
fedoraconfig: http://fedora.info/definitions/v4/config#
foaf: http://xmlns.com/foaf/0.1/
dc: http://purl.org/dc/elements/1.1/
awesome: http://example.com/awesome/

...

Fedora can activate the file by using the -Dfcrepo.namespace.registry switch system parameter, either on the command line or by adding it to the list of other switches params that provide paths to other configuration files:

...

Once Fedora is running, checking the available namespaces should return the list of custom namespaces and not the standard Modeshape system generated namespaces:

Code Block
curl -ufedoraAdmin:fedoraAdmin  http://localhost:8080/rest/

# Status 200
# @prefix premis:  <http://www.loc.gov/premis/rdf/v1#> .
# @prefix test:  <info:fedora/test/> .
# @prefix memento:  <http://mementoweb.org/ns#> .
# @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
# @prefix webac:  <http://fedora.info/definitions/v4/webac#> .
# @prefix acl:  <http://www.w3.org/ns/auth/acl#> .
# @prefix vcard:  <http://www.w3.org/2006/vcard/ns#> .
# @prefix xsi:  <http://www.w3.org/2001/XMLSchema-instance> .
# @prefix awesome:  <http://example.com/awesome/> .
# @prefix xmlns:  <http://www.w3.org/2000/xmlns/> .
# @prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
# @prefix fedora:  <http://fedora.info/definitions/v4/repository#> .
# @prefix xml:  <http://www.w3.org/XML/1998/namespace> .
# @prefix ebucore:  <http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#> .
# @prefix ldp:  <http://www.w3.org/ns/ldp#> .
# @prefix dcterms:  <http://purl.org/dc/terms/> .
# @prefix iana:  <http://www.iana.org/assignments/relation/> .
# @prefix xs:  <http://www.w3.org/2001/XMLSchema> .
# @prefix fedoraconfig:  <http://fedora.info/definitions/v4/config#> .
# @prefix foaf:  <http://xmlns.com/foaf/0.1/> .
# @prefix dc:  <http://purl.org/dc/elements/1.1/> .
...


Now, lets say for example that the awesome Suppose, you later decide that "awesome" namespace was not required. Edit the file /my/fedora/path/custom_namespaces.yml to remove the "awesome" namespace line, save the file and wait a moment or two, then check the namespace output again:

...