* URL scheme

[FIG(short list)[
- [CODE(URI)@en[[[http:]]]]
- [CODE(URI)@en[[[https:]]]]
- [CODE(URI)@en[[[git:]]]]
- [CODE(URI)@en[[[ssh:]]]]
- [CODE(URI)@en[[[git+ssh:]]]]
- [CODE(URI)@en[[[hg:]]]]
- [CODE(URI)@en[[[vcs:]]]]
- [CODE(URI)@en[[[svn:]]]]
- [CODE(URI)@en[bzr:]]
- [CODE(URI)@en[repo:]]
- [CODE(URI)@en[file:]]
- [CODE(URI)@en[cvs:]]
- [CODE(URI)@en[osc:]]
- [CODE(URI)@en[p4:]]
]FIG]


* 素片識別子

[FIG(quote)[
[FIGCAPTION[
[1] [CITE@en[pip install — pip 6.0.8 documentation]]
([TIME[2015-02-05 11:45:03 +09:00]] 版)
<https://pip.pypa.io/en/latest/reference/pip_install.html>
]FIGCAPTION]

> Passing branch names, a commit hash or a tag name is possible like so:
> '''['''-e''']''' git://git.myproject.org/MyProject.git@master#egg=MyProject
> '''['''-e''']''' git://git.myproject.org/MyProject.git@v1.0#egg=MyProject
> '''['''-e''']''' git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject
> 

]FIG]


[FIG(quote)[
[FIGCAPTION[
[2] [CITE@en[SPDX Specification 2.1 (web version) | Software Package Data Exchange (SPDX)]]
( ([TIME[2016-12-20 16:40:30 +09:00]]))
<https://spdx.org/spdx-specification-21-web-version#h.49x2ik5>
]FIGCAPTION]

> For version-controlled files, the VCS location syntax is similar to a URL and has the:
> <vcs_tool>+<transport>://<host_name>'''['''/<path_to_repository>''']''''''['''@<revision_tag_or_branch>''']''''''['''#<sub_path>''']'''
>  
> This VCS location compact notation (inspired and mostly adopted from https://pip.pypa.io/en/latest/reference/pip_install.html#vcs-support as of 20150220)  supports referencing locations in version control systems such as Git, Mercurial, Subversion and Bazaar, and specifies the type of VCS tool using url prefixes: “git+”, “hg+”, “bzr+”, “svn+” and specific transport schemes such as SSH or HTTPS.
>  
> Specifying sub-paths,  branch names, a commit hash, a revision   or a tag name is recommended, and supported using the "@"delimiter for commits and the "#" delimiter for sub-paths.
>  
> Using user names and password in the host_name is not supported and should be considered as an error. User access control to URLs or VCS repositories must be handled outside of an SPDX document.
>  
> In VCS location compact notations, the trailing slashes in <host_name>, <path_to_repository> are not significant. Leading and trailing slashes in <sub_path> are not significant.

]FIG]


[FIG(quote)[
[FIGCAPTION[
[3] [CITE@en[SPDX Specification 2.1 (web version) | Software Package Data Exchange (SPDX)]]
( ([TIME[2016-12-20 16:40:30 +09:00]]))
<https://spdx.org/spdx-specification-21-web-version#h.49x2ik5>
]FIGCAPTION]

> To specify a sub-path to a file or directory inside a repository use the "#" delimiter:
>  
> PackageDownloadLocation: git://git.myproject.org/MyProject#src/somefile.c
> PackageDownloadLocation: git+https://git.myproject.org/MyProject#src/Class.java
>  
> To specify branch names, a commit hash or a tag name, use the "@" delimiter:
>  
> PackageDownloadLocation: git://git.myproject.org/MyProject.git@master
> PackageDownloadLocation: git+https://git.myproject.org/MyProject.git@v1.0
> PackageDownloadLocation: git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709

]FIG]
