{
  "id": "uri",
  "kind": "datatype",
  "status": "draft",
  "name": "Uniform Resource Identifier (URI)",
  "doc": "Identifier of a resource in the generic syntax of RFC 3986: a scheme, a colon and a scheme-specific part, optionally followed by ?query and #fragment, such as https://example.com/, mailto:John.Doe@example.com, urn:isbn:0451450523 or tel:+1-816-555-1212. URLs, which locate a resource, and URNs, which name it, are both URIs. The scheme starts with a letter and may contain letters, digits, +, - and .; IANA keeps the registry of schemes. The regexp accepts only the ASCII characters that RFC 3986 allows, with other characters percent-encoded, so IRIs with non-ASCII characters do not match.",
  "children": [
    "bitcoin_uri",
    "data_uri",
    "did",
    "magnet_link",
    "mailto_uri",
    "sip_uri",
    "tag_uri",
    "uri_with_password",
    "url",
    "urn"
  ],
  "is_pii": false,
  "categories": [
    "internet"
  ],
  "langs": [
    "common"
  ],
  "classification": "identifier",
  "regexp": "^[A-Za-z][A-Za-z0-9+.-]*:(?:[A-Za-z0-9._~!$&'()*+,;=:@/?#\\[\\]-]|%[0-9A-Fa-f]{2})+$",
  "examples": [
    {
      "value": "ldap://[2001:db8::7]/c=GB?objectClass?one",
      "description": "Example of RFC 3986, section 1.1.2",
      "valid": true
    },
    {
      "value": "mailto:John.Doe@example.com",
      "description": "Example of RFC 3986, section 1.1.2",
      "valid": true
    },
    {
      "value": "news:comp.infosystems.www.servers.unix",
      "description": "Example of RFC 3986, section 1.1.2",
      "valid": true
    },
    {
      "value": "tel:+1-816-555-1212",
      "description": "Example of RFC 3986, section 1.1.2",
      "valid": true
    },
    {
      "value": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2",
      "description": "Example of RFC 3986, section 1.1.2",
      "valid": true
    },
    {
      "value": "www.example.com",
      "description": "No scheme",
      "valid": false
    },
    {
      "value": "10:30",
      "description": "A time; a scheme starts with a letter",
      "valid": false
    },
    {
      "value": "http://example.com/a b",
      "description": "Unencoded space",
      "valid": false
    }
  ],
  "mappings": {
    "fhir": "urn:ietf:rfc:3986"
  },
  "links": [
    {
      "type": "wikipedia",
      "url": "https://en.wikipedia.org/wiki/Uniform_Resource_Identifier"
    },
    {
      "type": "doc",
      "url": "https://www.rfc-editor.org/rfc/rfc3986"
    },
    {
      "type": "doc",
      "url": "https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml"
    }
  ],
  "translations": {
    "ru": {
      "name": "Унифицированный идентификатор ресурса (URI)",
      "doc": "Идентификатор ресурса в общем синтаксисе RFC 3986: схема, двоеточие и часть, зависящая от схемы."
    }
  },
  "quality": {
    "score": 90,
    "missing": [
      "detector coverage"
    ]
  },
  "source": {
    "path": "data/datatypes/any/internet/uri.yaml",
    "url": "https://github.com/apicrafter/metacrafter-registry/blob/main/data/datatypes/any/internet/uri.yaml",
    "edit_url": "https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/internet/uri.yaml"
  },
  "urls": {
    "html": "http://registry.apicrafter.io/datatype/uri",
    "json": "http://registry.apicrafter.io/api/v1/datatypes/uri.json"
  }
}