Description
Version identifiers are values rather than suffixes in declaration names. The initial implementation supports version 1 for each family; adding behavior under an existing family/version is incompatible.
BOM_Policy
type BOM_Policy is (Reject_BOM);
Enumeration literals
- Reject_BOM
Compatibility_Family
type Compatibility_Family is (No_Extensions);
Enumeration literals
- No_Extensions
Duplicate_Policy
type Duplicate_Policy is (Reject_Duplicates, Preserve_Unchecked);
Enumeration literals
- Reject_Duplicates
- Preserve_Unchecked
Output_Policy
type Output_Policy is (Ordinary_Compact);
Enumeration literals
- Ordinary_Compact
Parser_Profile
type Parser_Profile is record
Syntax : Versioned_Syntax;
Unicode : Versioned_Unicode;
Compatibility : Versioned_Compatibility;
BOM : BOM_Policy;
Duplicates : Duplicate_Policy;
Top_Level : Top_Level_Policy;
end record;
Record fields
- Syntax
- Unicode
- Compatibility
- BOM
- Duplicates
- Top_Level
Profile_Status
type Profile_Status is (Profile_Supported, Profile_Unsupported, Profile_Incompatible);
There is deliberately no profile factory, default, capacity, or policy constant. A caller constructs every field explicitly. The trusted profiles contain no accounting capability or hook.
Enumeration literals
- Profile_Supported
- Profile_Unsupported
- Profile_Incompatible
Profile_Version
subtype Profile_Version is Positive;
Version identifiers are values rather than suffixes in declaration names. The initial implementation supports version 1 for each family; adding behavior under an existing family/version is incompatible.
Syntax_Family
type Syntax_Family is (RFC_8259);
Enumeration literals
- RFC_8259
Top_Level_Policy
type Top_Level_Policy is (Accept_Any_Value, Require_Object);
Enumeration literals
- Accept_Any_Value
- Require_Object
Unicode_Family
type Unicode_Family is (Unicode_Scalars);
Enumeration literals
- Unicode_Scalars
Validate
function Validate (Profile : Parser_Profile) return Profile_Status
Validate accepts only the declared initial family/version combinations. Parser/writer operations separately freeze a validated profile before consuming input or beginning a destination transaction.
Parameters
- Profile
Return value
Validate
function Validate (Profile : Writer_Profile) return Profile_Status
Parameters
- Profile
Return value
Versioned_Compatibility
type Versioned_Compatibility is record
Family : Compatibility_Family;
Version : Profile_Version;
end record;
Record fields
- Family
- Version
Versioned_Output
type Versioned_Output is record
Policy : Output_Policy;
Version : Profile_Version;
end record;
Record fields
- Policy
- Version
Versioned_Syntax
type Versioned_Syntax is record
Family : Syntax_Family;
Version : Profile_Version;
end record;
Record fields
- Family
- Version
Versioned_Unicode
type Versioned_Unicode is record
Family : Unicode_Family;
Version : Profile_Version;
end record;
Record fields
- Family
- Version
Writer_Profile
type Writer_Profile is record
Syntax : Versioned_Syntax;
Unicode : Versioned_Unicode;
Formatting : Versioned_Output;
end record;
Record fields
- Syntax
- Unicode
- Formatting