6 PURL Type Schema

Each package manager, platform, type, or ecosystem has its own conventions and protocols to identify, locate, and provision software packages. The package type is the component of a package URL that is used to capture this information with a short string such as maven, npm, nuget, gem, pypi, etc. Known purl type definitions are formalized here independent of the core Package URL specification. See also a candidate list further down.

Definitions can also include types reserved for future use.

The PURL Type JSON Schema is the reference implementation for the Ecma standard.

Table 2: Properties for the root object
Property Type Requirement Description
$id object Schema defining the structure and constraints of a specific PURL type
definitions string Specifies whether this component is required, optional, or prohibited
character_constraints string Regex defining valid characters
case_rules object Defines case sensitivity and normalization rules
properties Determines if case must be preserved or ignored
normalization Defines if values must be normalized to lowercase, uppercase, or kept as provided