You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/README-docs.md
+22-13Lines changed: 22 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,21 +2,28 @@ This README explains the organization of documentation files for the PURL
2
2
specification.
3
3
4
4
## ECMA-427 documentation
5
-
The `purl-spec/docs/standard` folder has markdown files with text that match the content of [ECMA-427](https://ecma-international.org/publications-and-standards/standards/ecma-427/) which is the first edition of the Package-URL
6
-
Specification standard. These files map to ECMA-427 document as follows:
5
+
The `purl-spec/docs/standard` folder has markdown files with text that match
6
+
the content of [ECMA-427](https://ecma-international.org/publications-and-standards/standards/ecma-427/)
7
+
which is the first edition of the Package-URL Specification standard. These
| scheme | Required | The URL scheme with the constant value of "pkg". One of the primary reasons for this single scheme is to facilitate the future official registration of the "pkg" scheme for package URLs. |
15
+
| scheme | Required | The URL scheme with the constant value of "pkg". One of the primary reasons for this single scheme is to facilitate the future official registration of the "pkg" scheme for Package-URLs. |
16
16
| type | Required | The package "type" or package "protocol" such as maven, npm, nuget, gem, pypi, etc. |
17
17
| namespace | Optional | A name prefix such as a Maven groupid, a Docker image owner, a GitHub user or organization. Namespace is type-specific. |
18
18
| name | Required | The name of the package. |
@@ -84,11 +84,11 @@ as defined in Python pip or SPDX download locations are not valid PURL types.
84
84
A canonical PURL is composed of these permitted ASCII characters:
85
85
86
86
- the Alphanumeric Characters: **A to Z**, **a to z**, **0 to 9**,
87
-
- the Punctuation Characters: **.-_~** (period '.',
88
-
dash '-', underscore '_' and tilde '~'),
89
-
- the Percent Character: **%** (percent sign '%'), and
87
+
- the Punctuation Characters: **.-_~** (period '.'
88
+
dash '-', underscore '_' and tilde '~')
89
+
- the Percent Character: **%** (percent sign '%')
90
90
- the Separator Characters **:/@?=&#** (colon ':', slash '/', at sign '@',
91
-
question mark '?', equal sign '=', ampersand '&' and hash sign '#').
91
+
question mark '?', equal sign '=', ampersand '&' and hash sign '#')
92
92
93
93
94
94
## Separator characters
@@ -132,11 +132,11 @@ This is how each of the Separator Characters is used:
132
132
133
133
- Where the space ' ' is permitted, it shall be percent-encoded as '%20'.
134
134
- With the exception of the percent-encoding mechanism, the rules regarding
135
-
percent-encoding are defined by this specification alone.
135
+
percent-encoding are defined by this Standard alone.
136
136
137
137
## Case folding
138
138
139
-
References to "lowercase" in this specification refer to the
139
+
References to "lowercase" in this Standard refer to the
140
140
**culture-invariant** full case mapping defined in
141
141
[Section 3.13.2 of the Unicode Standard](https://www.unicode.org/versions/Unicode16.0.0/core-spec/chapter-3/#G34078).
142
142
@@ -149,13 +149,13 @@ All other ASCII characters remain unchanged.
149
149
150
150
A PURL string is an ASCII URL string composed of seven components.
151
151
152
-
Except as expressly stated otherwise in this section, each component:
152
+
Except as expressly stated otherwise in this Clause, each component:
153
153
154
-
- may be composed of any of the characters defined in the "Permitted
155
-
characters" section
156
-
- shall be encoded as defined in the "Character encoding" section
154
+
- may be composed of any of the characters defined in the _Permitted
155
+
characters_ clause
156
+
- shall be encoded as defined in the _Character encoding_ clause
157
157
158
-
The "lowercase" rules are defined in the "Case folding" clause.
158
+
The "lowercase" rules are defined in the Case folding clause.
159
159
160
160
The rules for each component are:
161
161
@@ -185,7 +185,7 @@ stripped in the canonical form. They are not part of the **namespace**.
185
185
- shall not contain any slash '/' characters
186
186
- shall not be empty
187
187
- may contain any Unicode character other than '/' unless the package's
188
-
**type** definition provides otherwise.
188
+
**type** definition provides otherwise
189
189
- A URL host or Authority shall not be used as a **namespace**. Use instead a
190
190
**repository_url** qualifier. Note however, that for some types, the
191
191
**namespace** may look like a host.
@@ -222,7 +222,7 @@ This '&' separator is not part of an individual **qualifier**.
222
222
- A **key** shall not be percent-encoded.
223
223
- Each **key** shall be unique among all the keys of the **qualifiers** component.
224
224
- A **value** may contain any Unicode character and all characters shall
225
-
be encoded as described in the "Character encoding" section.
225
+
be encoded as described in the _Character encoding_ clause.
226
226
227
227
### Subpath
228
228
- The **subpath** string is prefixed by a '#' separator when not empty.
@@ -234,8 +234,8 @@ in the canonical form.
234
234
- When percent-decoded, a segment:
235
235
- shall not contain any slash '/' characters
236
236
- shall not be empty
237
-
-Shall not be any of '..' or '.'
238
-
-May contain any Unicode character other than '/' unless the package's **type** definition provides otherwise.
237
+
-shall not be any of '..' or '.'
238
+
-may contain any Unicode character other than '/' unless the package's **type** definition provides otherwise.
239
239
- The **subpath** shall be interpreted as relative to the root of the package.
0 commit comments