JSV.RNS (jsv v0.5.0)

View Source

A "namespace" for a schema ID or reference. In the JSV library, a namespace for a schema represents the document the schema belongs to. When it is an URL, it is the scheme, host and path, ignoring the query string and the fragment.

That is basically a URI but with extra support for URNs (urn:isbn:1234 is represented as urn://isbn/1234).

Summary

Functions

Returns a new string namespace by appending a relative path to a base namespace. If the relative is absolute or :root, returns the relative.

Parses the given URL or URN and returns an internal representation of its namespace.

Returns the string value of the namespace, or :root.

Types

t()

@type t() :: URI.t() | :root

Functions

derive(base, relative)

@spec derive(binary() | :root, binary() | :root) ::
  {:ok, binary() | :roo} | {:error, term()}

Returns a new string namespace by appending a relative path to a base namespace. If the relative is absolute or :root, returns the relative.

parse(uri)

@spec parse(binary() | :root) :: t()

Parses the given URL or URN and returns an internal representation of its namespace.

Also accepts :root for root schemas without $id.

to_ns(uri)

@spec to_ns(t()) :: binary() | :root

Returns the string value of the namespace, or :root.