| 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 | None |
| Language | Haskell98 |
Swish.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
- 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.
Instances
| Eq Namespace # | Equality is defined by the URI, not by the prefix (so the same URI with different prefixes will be considered to be equal). |
| Ord Namespace # | |
| Show Namespace # | |
Create a name space from a URI and an optional prefix label.
Arguments
| :: 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.
getNamespacePrefix :: Namespace -> Maybe Text #
Returns the prefix stored in the name space.
getNamespaceURI :: Namespace -> URI #
Returns the URI stored in the name space.
getNamespaceTuple :: Namespace -> (Maybe Text, URI) #
Convert the name space to a (prefix, URI) tuple.
data ScopedName #
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
| Eq ScopedName # | Scoped names are equal if their corresponding |
Defined in Swish.Namespace | |
| Ord ScopedName # | Scoped names are ordered by their |
Defined in Swish.Namespace Methods compare :: ScopedName -> ScopedName -> Ordering # (<) :: ScopedName -> ScopedName -> Bool # (<=) :: ScopedName -> ScopedName -> Bool # (>) :: ScopedName -> ScopedName -> Bool # (>=) :: ScopedName -> ScopedName -> Bool # max :: ScopedName -> ScopedName -> ScopedName # min :: ScopedName -> ScopedName -> ScopedName # | |
| Show ScopedName # | If there is a namespace associated then the Show instance
uses |
Defined in Swish.Namespace Methods showsPrec :: Int -> ScopedName -> ShowS # show :: ScopedName -> String # showList :: [ScopedName] -> ShowS # | |
| IsString ScopedName # | This is not total since it will fail if the input string is not a valid |
Defined in Swish.Namespace Methods fromString :: String -> ScopedName # | |
| FromRDFLabel ScopedName # | Converts from a Resource. |
Defined in Swish.RDF.Graph Methods fromRDFLabel :: RDFLabel -> Maybe ScopedName # | |
| ToRDFLabel ScopedName # | Converts to a Resource. |
Defined in Swish.RDF.Graph Methods toRDFLabel :: ScopedName -> RDFLabel # | |
getScopeNamespace :: ScopedName -> Namespace #
Returns the namespace.
getScopeLocal :: ScopedName -> LName #
Returns the local part.
getScopePrefix :: ScopedName -> Maybe Text #
Returns the prefix of the namespace, if set.
getScopeURI :: ScopedName -> URI #
Returns the URI of the namespace.
getQName :: ScopedName -> QName #
Get the QName corresponding to a scoped name.
getScopedNameURI :: ScopedName -> URI #
Get URI corresponding to a scoped name (using RDF conventions).
matchName :: String -> ScopedName -> Bool #
Test if supplied string matches the display form of a scoped name.
Arguments
| :: Maybe Text | prefix for the namespace |
| -> URI | namespace |
| -> LName | local name |
| -> ScopedName |
Construct a ScopedName.
Arguments
| :: Maybe Text | prefix |
| -> QName | |
| -> ScopedName |
Construct a ScopedName from a QName.
makeURIScopedName :: URI -> ScopedName #
Construct a ScopedName for a bare URI (the label is set to "").
Arguments
| :: Namespace | namespace |
| -> LName | local component |
| -> ScopedName |
Construct a ScopedName.
nullScopedName :: ScopedName #
This should never appear as a valid name
namespaceToBuilder :: Namespace -> Builder #
Utility routine to create a @prefix line (matching N3/Turtle) grammar for this namespace.