Copyright | (c) 2003 Graham Klyne 2009 Vasili I Galchin 2011 2012 2014 Douglas Burke |
---|---|
License | GPL V2 |
Maintainer | Douglas Burke |
Stability | experimental |
Portability | CPP, OverloadedStrings |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
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
- data Namespace
- makeNamespace :: Maybe Text -> URI -> Namespace
- makeNamespaceQName :: Namespace -> LName -> QName
- getNamespacePrefix :: Namespace -> Maybe Text
- getNamespaceURI :: Namespace -> URI
- getNamespaceTuple :: Namespace -> (Maybe Text, URI)
- data ScopedName
- getScopeNamespace :: ScopedName -> Namespace
- getScopeLocal :: ScopedName -> LName
- getScopePrefix :: ScopedName -> Maybe Text
- getScopeURI :: ScopedName -> URI
- getQName :: ScopedName -> QName
- getScopedNameURI :: ScopedName -> URI
- matchName :: String -> ScopedName -> Bool
- makeScopedName :: Maybe Text -> URI -> LName -> ScopedName
- makeQNameScopedName :: Maybe Text -> QName -> ScopedName
- makeURIScopedName :: URI -> ScopedName
- makeNSScopedName :: Namespace -> LName -> ScopedName
- nullScopedName :: ScopedName
- namespaceToBuilder :: Namespace -> Builder
Documentation
A NameSpace value consists of an optional prefix and a corresponding URI.
Create a name space from a URI and an optional prefix label.
:: Namespace | The name space URI is used in the qualified name |
-> LName | local component of the qualified name (can be |
-> QName |
Create a qualified name by combining the URI from the name space with a local component.
getNamespaceURI :: Namespace -> URI Source #
Returns the URI stored in the name space.
getNamespaceTuple :: Namespace -> (Maybe Text, URI) Source #
Convert the name space to a (prefix, URI) tuple.
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.
Instances
getScopeNamespace :: ScopedName -> Namespace Source #
Returns the namespace.
getScopeLocal :: ScopedName -> LName Source #
Returns the local part.
getScopePrefix :: ScopedName -> Maybe Text Source #
Returns the prefix of the namespace, if set.
getScopeURI :: ScopedName -> URI Source #
Returns the URI of the namespace.
getQName :: ScopedName -> QName Source #
Get the QName corresponding to a scoped name.
getScopedNameURI :: ScopedName -> URI Source #
Get URI corresponding to a scoped name (using RDF conventions).
matchName :: String -> ScopedName -> Bool Source #
Test if supplied string matches the display form of a scoped name.
:: Maybe Text | prefix for the namespace |
-> URI | namespace |
-> LName | local name |
-> ScopedName |
Construct a ScopedName.
:: Maybe Text | prefix |
-> QName | |
-> ScopedName |
Construct a ScopedName from a QName.
makeURIScopedName :: URI -> ScopedName Source #
Construct a ScopedName for a bare URI (the label is set to "").
:: Namespace | namespace |
-> LName | local component |
-> ScopedName |
Construct a ScopedName.
nullScopedName :: ScopedName Source #
This should never appear as a valid name
namespaceToBuilder :: Namespace -> Builder Source #
Utility routine to create a @prefix line (matching N3/Turtle) grammar for this namespace.