swish-0.3.0.1: A semantic web toolkit.

PortabilityTypeSynonymInstances, MultiParamTypeClasses
Stabilityexperimental
MaintainerDouglas Burke

Swish.Utils.Namespace

Description

This module defines algebraic datatypes for namespaces and scoped names.

For these purposes, a namespace is a prefix and URI used to identify a namespace (cf. XML namespaces), and a scoped name is a name that is scoped by a specified namespace.

Synopsis

Documentation

data Namespace Source

A NameSpace value consists of a prefix and a corresponding URI. The prefix may be empty (""), in which case it is assumed to be unknown.

NOTE: not clear whether nsPrefix should be empty or set to "?".

Constructors

Namespace 

Fields

nsPrefix :: String
 
nsURI :: String
 

data ScopedName Source

A full ScopedName value has a QName prefix, namespace URI and a local part. ScopedName values may omit the prefix (see Namespace) or the local part.

Some applications may handle null namespace URIs as meaning the local part is relative to some base URI.

Constructors

ScopedName 

getQName :: ScopedName -> QNameSource

Get QName corresponding to a scoped name

getScopedNameURI :: ScopedName -> StringSource

Get URI corresponding to a scoped name (using RDF conventions)

matchName :: String -> ScopedName -> BoolSource

Test if supplied string matches the display form of a scoped name.

makeScopedName :: String -> String -> String -> ScopedNameSource

Construct a ScopedName from prefix, URI and local name

makeQNameScopedName :: QName -> ScopedNameSource

Construct a ScopedName from a QName

makeUriScopedName :: String -> ScopedNameSource

Construct a ScopedName for a bare URI

nullScopedName :: ScopedNameSource

This should never appear as a valid name