XML DTD for Roaming Access Phone Book
Extracted elements (26)
Because XML DTDs lack strong typing beyond #PCDATA, the specification introduces XML NOTATIONs (FQDN, IPADR, B64JPG, B64GIF) as advisory type annotations on element 'value' attributes, providing machine-readable hints about expected content format without enforcing validation.
The DTD is split into an IANA-maintained extensible part (parameter entity declarations for enumerated attribute lists and information element groupings) and a fixed part (content/structure declarations). This separation allows IANA to extend enumerated values and add elements without altering the fixed structural specification.
XML was chosen as the phone book syntax for extensibility (new attributes can be defined as business needs evolve), flexibility (arbitrary data types can be represented cleanly), and potential directory integration (an XML DTD leaves open the option of storing phone books in an LDAP/X.500 directory with minimal incremental effort).
Some setup element values (DNS server address, default gateway) may be available by other means such as DHCP, but others (NNTP, SMTP, proxy server names, username prefix/suffix) may not. The setup element provides these statically when dynamic assignment is unavailable.
All newly added information elements to the DTD MUST be optional; mandatory inclusion of newly defined information elements is prohibited to preserve backward compatibility of the DTD with documents based on older versions.
Country name abbreviations within a phone book must be used consistently: 'if abbreviations are used the usage must be consistent within a given phone book.' No controlled vocabulary is mandated; implementers may choose their own abbreviation scheme.
The phoneBook 'version' attribute is a monotonically increasing integer that SHOULD be incremented each time the phone book is modified. It can be used by a server to determine what actions are required to bring a client's phone book up to date.
The pop 'entryVersion' attribute is a monotonically increasing integer that SHOULD be incremented each time the POP object is modified. It may be useful in merging and updating phone books.
The address element provides the POP's network address as #PCDATA (e.g., a telephone number in ITU-T E.123 format such as '+1 234 5678'). It has a required 'family' attribute (E164 or X121) and optional 'countryCode' and 'areaCode' attributes.
The dialScript element contains the dialing script as #PCDATA with an optional 'type' attribute specifying the script type. It is used when connecting to the POP.
The 'family' attribute of the address element defines the address family: E164 for ITU-T E.164 (PSTN, SMDS, Frame Relay, ATM) or X121 for ITU-T X.121 (X.25, Frame Relay). This attribute is REQUIRED. Additional values may be registered by IANA.
The media element is a container for media types and related protocols supported by a POP. Defined media types are: viaMODEM, viaISDN, viaATM, viaFR, and viaX25. At least one media element is required per pop. Additional types may be registered by IANA.
The phoneBook element is the root container for roaming phone book entries. It requires two attributes ('name' as an arbitrary identifier string and 'version' as an integer version counter) and must contain one or more pop elements, with optional setup, support, and provider elements.
The pop element contains information about individual network Points of Presence (POPs). Required child elements are address, media, and the entryVersion attribute; optional elements include minBitsPerSecond, maxBitsPerSecond, popProperty, tunnelProto, dialScript, pricingInformation, location, popSetup, popSupport, and popProvider.
The popProperty element is an empty element with a required 'type' attribute indicating a POP capability: MPPP (Multilink PPP, RFC 1990), MOBIP (Mobile IP, RFC 2002), MCRX (Multicast Reception), or MCTX (Multicast Transmission). Multiple instances may appear.
The provider element contains general ISP business information including providerName, providerIcon (Base64-encoded JPEG or GIF), wwwURL, generalMailtoURL, billingMailtoURL, and RFC 1274 X.500 directory attributes (street, postalAddress, telephoneNumber, etc.). It carries a required 'id' attribute.
The providerIcon element holds a Base64-encoded JPEG or GIF image as #PCDATA, indicated by the 'value' attribute NOTATION of B64JPG or B64GIF. It may be used for branding phone book entries or display when dialing.
The setup element groups POP/provider-specific service configuration: dnsServerAddress (IP, dotted-decimal), nntpServerName, smtpServerName, popServerName, imapServerName, wwwProxyServerName, ftpProxyServerName, winsockProxyServerName, defaultGatewayAddress, userNamePrefix, and userNameSuffix. It carries a required 'id' attribute for cross-referencing.
The support element groups customer support contact information using a required 'id' attribute and an optional 'language' attribute (NMTOKENS). It must contain at least one supportTelephoneNumber or supportMailtoURL element; multiple language values allow specifying multilingual support centers.
The tunnelProto element is an empty element with a required 'type' attribute specifying a tunneling protocol supported by the POP. Defined values: L2TP, PPTP, L2F, ATMP, AHT (IP AH Tunnel), ESPT (IP ESP Tunnel), IPIP, MIP (Minimal IP-IP), GRE. Multiple instances may appear.
The userNameSuffix and userNamePrefix elements contain strings concatenated to a base username when dialing (e.g., suffix '@bigco.com' yields '[email protected]'; prefix 'BIGCO/' yields 'BIGCO/userB'). Both may be applied simultaneously to the same base username.
The viaISDN element is an empty element with an optional 'type' attribute specifying ISDN protocol: V110L (19.2k), V110H (38.4k), V120L (56k), V120H (64k), X75 (64k), or HDLC (64k per RFC 1618). Multiple instances may appear. Additional values may be registered by IANA.
The viaMODEM element is an empty element with an optional 'type' attribute specifying modem protocol: V21 (300 bps), V22 (1200), V29 (9600 half-duplex), V32 (9600), V32B (14.4k), V34 (28.8k), V34B (33.6k), or V90 (56k). Multiple instances may appear to advertise multiple protocols.
IANA maintains enumerated attribute value lists for addressFamily, modemProtocols, isdnProtocols, atmProtocols, frProtocols, x25Protocols, popProperties, and tunnelingProtocols. New values require Specification Required per RFC 2434, since name-space conflicts cannot invalidate existing values.
IANA maintains the information element lists for mediaTypes, popInformation, setupInformation, supportInformation, and providerInformation. New entries require a Designated Expert per RFC 2434, because inappropriate use of the XML content model could break backward compatibility of the DTD.
Secure distribution of a roaming phone book requires reliable authentication of the issuer and integrity protection of the content. The XML DTD itself provides no security elements; security is assumed to be provided by external mechanisms such as signing the phone book using PGP.