reference implementation of JXTA provides an implementation of JXTA
IDs based on UUIDs. In this implementation UUIDs are encoded as hex
digits as the basis for the uniqueness of the identifiers. This
optional ID format is identified as the
format. At the end of each UUID ID two hex characters identify the
type of JXTA ID. Currently, six ID types have been defined. The data
portion of the ID precedes the ID type.
<JXTAUUIDURN> ::= "urn:" <JXTANS> ":" <JXTAUUIDFMT> "-" <(1*(<hex> <hex>)) <JXTAUUIDIDTYPE> <JXTAUUIDFMT> ::= "uuid" <JXTAUUIDIDTYPE> ::= <CODATID> | <PEERGROUPID> | <PEERID> | <PIPEID> | <MODULECLASSID> | <MODULESPECID> <CODATID> ::= "01" <PEERGROUPID> ::= "02" <PEERID> ::= "03" <PIPEID> ::= "04" <MODULECLASSID> ::= "05" <MODULESPECID> ::= "06"
The characters preceding the ID type identifier are the encoded form of the ID. The encoding consists of a variable number of characters dependent on the ID type being encoded. To decode the ID, the hex characters are translated in order into the elements of a byte array from which the various ID components can be retrieved. All JXTA UUID IDs are currently manipulated as 64-byte arrays, although no ID type currently requires all 64 bytes to encode their contents. Position 63 always contains the UUID ID type value. The remainder of the ID fields are defined beginning at Position 0 and increment to Position 63.
To make the text presentation of JXTA UUID IDs as URNs more compact, implementations ...