Formal Public Identifier

AFormal Public Identifier(FPI) is a short piece of text with a particular structure that may be used to uniquely identify a product, specification or document. FPIs were introduced as part ofStandard Generalized Markup Language(SGML), and serve particular purposes in formats historically derived from SGML (HTMLandXML). Some of their most common uses are as part ofdocument type declarations(DOCTYPEs) anddocument type definitions(DTDs) in SGML, XML and historically HTML, but they are also used in thevCardandiCalendarfile formats to identify the software product which generated the file.

More recently,Uniform Resource Identifiers(URIs) anduniversally unique identifiers(UUIDs) are usually used to uniquely identify objects. FPIs have become alegacy system.

Syntax

edit

An FPI consists of anowner identifier,followed by a doubleslash(//), followed by atext identifier.[1]: 381–382 For example, the identifier "-//W3C//DTD HTML 4.01//EN"can be broken down into two parts: theowner identifierwhich indicates the issuer of the FPI, and thetext identifierwhich indicates the particular document or object the FPI identifies.[2]In the example, the owner identifier is "-//W3C"and the text identifier is"DTD HTML 4.01//EN".

The text identifier itself consists of multiple constituent parts.[1]: 385 Sequences of whitespace are treated as equivalent to a single space.[1]: 381–382 

Owner identifier

edit

There are three types of owner identifier, distinguished by their first three characters, which areISOfor anISO owner identifier,-//for anunregistered owner identifieror+//for aregistered owner identifier.[1]: 383–384 

ISO owner identifier

edit

AnISO owner identifieris either anISOpublication number such asISO 8879:1986,or anISO-IRregistration number given as e.g.ISO Registration Number 111forISO-IR-111.The latter type is only permitted forCHARSETFPIs (see below). In either case, it is distinguished by beginning with the charactersISO,and does not require any prefix before those characters.[1]: 383–384 

The year was formerly separated from the standard number by a hyphen (-,e.g.ISO 8879-1986),[3]which use is nowdeprecated.[4]The hyphen is now, instead, used to separate the part number from the standard number[2](replacing earlier use of a single slash (/) for that purpose);[5]the year follows any part number if present, and is separated by a colon (:).[2]

Unregistered owner identifier

edit

Anunregistered owner identifierbegins with-//.[1]: 384–385 Owners which use unregistered identifiers include theW3C(-//W3C),[6]: 8–9 theInternet Engineering Task Force(-//IETF),[7]theUnited States Department of Defense(-//USA-DOD),[8]theEuropean Parliament(-//EP)[9]and others. Since it is not registered, it is not guaranteed to be unique (another owner may choose the same owner identifier), which weakens the uniqueness guarantee of the FPI as a whole, although it is still guaranteed to be distinct both from all other FPIs with the same owner, and also from all FPIs with registered owners.[1]: 186 

Registered owner identifier

edit

Aregistered owner identifierbegins with the characters+//.It refers to a registered identifier as stipulated byISO 9070.[1]: 384 The portion which is actually registered is theregistered owner prefix,which follows the+//and may optionally be followed by one or more owner-assigned portions which might identify, for example, departments within an organisation.[1]: 184 If owner name components additional to the registered prefix are used, they are separated from the prefix by a::pair.[2][10]: 63 

A registered owner prefix conforming to ISO 9070 may be one of the following:[2]

  • AnISO standard authority prefix,an identifier of an ISO orISO/IECstandard.[2]Although these FPIs do not need to have a leading+//as mentioned above,[1]: 184, 383–384 such a prefix is occasionally seen used in references to ISO standards in FPIs, especially those which are alsoIECstandards.[10]: 318–319 
  • AnISO registration authority prefix,which may be:
    • Afull registration authority prefix(an identifier of an ISO standard without the year, followed by/RAcase-insensitively)[2]
    • AnISO 2375 prefix(the stringISO Registration Numberand a space followed by anISO-IRnumber[2]although, as mentioned above, the+//can be omitted in this case).[1]: 383–384 
    • AnISBN prefix(the stringISBN,a space, and an ISBN),[2][10]: 321–325 acceptance of which was added in a later amendment to ISO 9070[1]: 184, 384 
    • More recently, registereddomain names(followingIDNand a space) are also permitted.[11][12]For example, the owner ofexample.netcould issue FPIs using the owner identifier "+//IDN example.net".
  • AnISO member body prefix,i.e. an identifier for a standards organisation which is a member of the ISO.[2][1]: 184, 384 
  • AnISO identified organization authority prefix:the stringICDfollowed, without an intervening space, by anISO 6523organisation code.[2][1]: 184 

Text identifier

edit

Text identifiers can be broken down into theclass,descriptionandlanguage.In the example-//W3C//DTD HTML 4.01//EN,the class is "DTD",indicating that the FPI represents a document type definition; the description is"HTML 4.01";and the language is"EN"which suggests that the document type definition is written in English (though documents conforming to the DTD do not need to be in English).[6]: 7 The class is separated from the description using a space character; the description is separated from the language using a double slash. The text identifier may optionally contain a version indicator after the language, also separated by a double slash.

Class

edit

The text identifier immediately follows the//pair after the owner identifier, and must begin with one of the following block-capital words followed by a space, specifying thepublic text class:[1]: 385–387 

  • CAPACITY
  • CHARSET
  • DOCUMENT
  • DTD
  • ELEMENTS
  • ENTITIES
  • LPD
  • NONSGML
  • NOTATION
  • SD[13]
  • SHORTREF
  • SUBDOC
  • SYNTAX
  • TEXT

DOCUMENT,SUBDOCandTEXTrefer to SGML documents or fragments of SGML documents.[1]: 386 Those of theTEXTclass are intended to be referenced using a text entity (without an entity-type keyword, i.e. inserted directly into the document), while those of theSUBDOCclass are intended to be referenced using a subdocument entity (with theSUBDOCkeyword in the entity declaration, i.e. interpreted with their own individual schemas, namespaces, and so forth).[1]: 294–296, 400–401 Those of theDOCUMENTclass are not intended to be referenced as an entity from an enclosing document.

CAPACITYandSYNTAXrefer to portions of an SGML declaration.SD(for an entire SGML declaration) was added to this list by a later extension added to the standard as an annex, which also specifies certain extensions required by XML.[13]LPDrefers to an SGML link process definition (defining atransformationfrom one SGML format to another).ELEMENTS,ENTITIESandSHORTREFrefer to portions of adocument type definition(DTD) consisting of specific types of markup declaration.DTDrefers to an entire DTD.

The remaining three refer to concepts from outside of SGML:CHARSETrefers to acoded character set,NOTATIONto a format such as afile format(either for references to entities from external files, or for interpreting a textual format contained within an element),[1]: 336–337 andNONSGMLto an asset in a non-SGML format.

Availability marker and description

edit

The space after the text class name is followed by the sequence-//if the FPI refers tounavailable public text[1]: 385 —i.e. a document, file or specification which is not available for access or purchase by the general public.[1]: 182 Thepublic text descriptionfollows this marker; for anavailable public text,the description immediately follows the space after the text class name.[1]: 385 For an ISO publication, the description is taken from the final element of the title of the publication, not counting any part number; otherwise, it can be any suitably unique string of permitted characters.[1]: 387 The description is terminated by another//pair.[1]: 385 

ISO 2022 designating sequence

edit

The part of the FPI following the description depends on the text class. ForCHARSETFPIs, it is apublic text designating sequence,[1]: 385 giving a textual representation of anISO/IEC 2022designation escape sequence in column/line notation (e.g.ESC 2/8 4/0); registered designation escapes are expected to match the ISO owner identifier given, while private-use designation escapes are namespaced by the FPI owner identifier.[1]: 389–390 As an example of this type of FPI, the FPIISO Registration Number 177//CHARSET ISO/IEC 10646-1:1993 UCS-4 with implementation level 3//ESC 2/5 2/15 4/6is used inHTML 4's SGML declaration to identifyUnicode.[14]

Language

edit

For all other FPIs (i.e. those where the class is notCHARSET), the part following the description is apublic text languagewhich is a sequence of uppercase letters, strongly encouraged (but not mandated) to be anISO 639-1code.[1]: 387–388 Stopping short of mandating the use of an ISO 639-1 code avoids requiring validating software to check whether the language is an ISO 639-1 code, and also allows for extensibility:[1]: 387 for example, a small number of FPIs used in practice useISO 639-3codes (such asNDSforLow German)[15]orIETF language tagswith hyphens removed (such asSRLATNforSerbianwritten inGajica)[16]for cases where ISO 639-1 codes prove insufficient for distinguishing a resource from versions in other languages or language varieties. In accordance with recommendations made byISO 9070,Steven DeRoseand David G. Durand suggest usingXXif no ISO 639 code is applicable.[10]: 62 

The specification notes that while the language of the resource might affect the data and names defined and the language of any source-code comments, the language affects the usability of some text classes more than others.[1]: 387 For example, the languageENgiven in the FPI in an HTML 4 or XHTML 1 DOCTYPE declaration should not be changed, regardless of the language of the web page itself;[6]: 7 by contrast, theDSSSLstylesheets forDocBookinternally use FPIs with different languages to identify string-table entity sets for particularlocalisations.[17]

Entity display version

edit

Additionally, except forCHARSET,CAPACITY,NOTATIONandSYNTAXFPIs, for which the designating sequence or language must be the final part,[1]: 390 the language code may be followed by another//pair,[1]: 385 followed by apublic text display version,which specifies a particular platform that the implementation ofSGML entitiesshould target.[1]: 389–390 For example, the baseISO 8879:1986//ENTITIES Added Latin 1//ENentity set defines theLatin-1named entities using tautologicalSDATAentities,[1]: 506–507 [18]whileISO 8879:1986//ENTITIES Added Latin 1//EN//XMLimplements them usingUnicodecode point references for use inXML.[19]Similarly, the common entity set forHTML 5andMathMLuses the FPI-//W3C//ENTITIES HTML MathML Set//EN//XML.[20]

Example FPIs

edit
Examples of FPIs
FPI Meaning
+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION CompuServe Graphic Interchange Format//EN[10]: 322  TheGIF(.gif) image format (equivalent toMIME typeimage/gif)—an example of an ISBN FPI owner, and of aNOTATIONFPI used as a file-format identifier.
+//ISO/IEC 10744//NOTATION Systeme International kilogram//EN[10]: 319  TheSystème Internationalbase unitofkilogram
ISO Registration Number 177//CHARSET ISO/IEC 10646-1:1993 UCS-4 with implementation level 3//ESC 2/5 2/15 4/6[14] TheUnicode(orUCS) coded character set, as referenced by numeric character references in HTML—an example of aCHARSETFPI
-//W3C//DTD HTML 4.01 Transitional//EN[6]: 8  Document type definitionofHTML 4.01 Transitional;corresponds to the system identifierURLhttp://www.w3.org/TR/html4/loose.dtd[6]: 8 
-//Facebook//NONSGML Facebook Events V1.0//EN[21][22] Facebook Eventsas aniCalendarfile generator—an example of aNONSGMLFPI used to identify a software package
-//EP//NONSGML PV 20151125 RES-RCV DOC PDF V0//EN[9] Results of theEuropean Parliamentroll-call vote onSupport for EU Strategic Framework on health and safety at work 2014-2020 (A8-0312/2015)—an example of aNONSGMLFPI used to identify a document in a non-SGML format (in this case,PDF)
-//W3C//ENTITIES HTML MathML Set//EN//XML[20] Character entity setofHTML 5andMathML;corresponds to the system identifier URLhttp://www.w3.org/2003/entities/2007/htmlmathml-f.ent[20]—an example of anENTITIESFPI
+//IDN nwalsh.com//DTD DocBook DSSSL Architecture V1.0//EN[12] Document type definition of a variant ofDocBook3.1 which can simultaneously constitute aDSSSLstylesheet[12]—an example of a domain name used as an FPI owner
+//ISBN 3-893-196463::Goosens//NOTATION Der LaTeX Begleiter//DE[23] TheLaTeXformat, as used for formulae in academic works[23]—an example of an FPI using a language code other thanENto refer to non-English reference material
  • -//Norman Walsh//ENTITIES DocBook Stylesheet Localization//EN[24]
  • -//Norman Walsh//ENTITIES DocBook Stylesheet Localization//FR[25]
  • -//Norman Walsh//ENTITIES DocBook Stylesheet Localization//EL[26]
Respectively English, French and Greek string tables used byDSSSLstylesheets forDocBook(for example, the entity&Chapter;is defined as"Chapitre"in French[27]and"Chapter"in English)[28]—an example of use of a FPI language code to differentiate between differentlocalisations

Use in XML, SGML and HTML

edit

The FPI is undoubtedly the least well-understood part of thedocument type declaration(DOCTYPE), an integral component of validHTML,XMLandStandard Generalized Markup Language(SGML) documents.[29]The Formal Public Identifier's effect upon its host document is unusual in that it can depend not only upon its own syntactical correctness and the behaviour of the programparsingit, but also upon the ISO-registration status of the organisation responsible forschemareferenced by the FPI.[30]

Public identifiers and system identifiers in SGML

edit

SGML uses two forms of identifier for resources:system identifiersare unique and meaningful only within a particular system, whilepublic identifiersare unique and meaningful within a wider scope.[1]: 186 The term "public" here does not necessarily mean that the resource is available to the general public—it may only be available within a single organisation, for example (in which case, it is anunavailable public text)—but only that it exists outside of the context of the particular system environment or document which it is referenced in.[1]: 182 An FPI is a "formal" public identifier in the sense that it follows the formal structure laid down by the SGML standard (ISO 8879);[1]: 183 public identifiers which do not follow the formal structure, and thus are not FPIs, are sometimes referred to as "informal" public identifiers.[1]: 186 

Although the constraints of formal (as opposed to informal) public identifiers are an optional feature, due to the specification for FPIs being introduced late in the development of ISO 8879, use of FPIs for public identifiers is strongly recommended, since the FPI structure ensures that the FPIs assigned by one owner do not collide with FPIs assigned by other owners (except in the case of unregistered owners with colliding names), while informal public identifiers have no uniqueness guarantee, meaning that those assigned by one owner may collide with formal or informal public identifiers assigned by another.[1]: 186 A feature enabling the interpretation of public identifiers using the formal structure, thus requiring public identifiers to be FPIs, can be enabled within the SGML declaration using theFORMALfeature name.[1]: 64, 88, 378 

System identifiers, by contrast, have no structure defined by SGML itself—they might be filenames, database keys or even addresses for indexable storage—but are interpreted by the SGML system'sentity managercomponent to identify the location of the entity.[1]: 378 As such, ISO/IEC 8879 itself does not use the termformal system identifier(FSI), which is instead defined in an amendment to ISO/IEC 10744 (HyTime).[31]

An SGMLexternal identifierconsists either of the keywordPUBLICfollowed by a literal for the public identifier and an optional literal for the system identifier, or the keywordSYSTEMfollowed by an optional literal for the system identifier.[1]: 379 The literals are prefixed and suffixed with either theliteral delimiteror thealternative literal delimiter,[1]: 380–381 usually set by the SGML declaration to the double and single ASCII quotation marks, as they are in the reference concrete syntax for SGML,[1]: 372 and also in XML.[32]The use of theSYSTEMkeyword in an SGML entity definition without a following system identifier is permitted, if the entity manager is able to resolve the entity from its name alone.[1]: 378 External identifiers are used indocument type declarations(DOCTYPEs) referencingdocument type definitions(DTDs),[1]: 403 in external entity specifications[1]: 400 and notation declarations[1]: 427 within DTDs, and inlink type declarationsreferencinglink process definitions(LPDs).[1]: 433–434 

Developments in XML

edit

Introduction of URIs and sidelining of FPIs

edit

External identifiers in XML are more constrained than they are in general SGML, with the changes shifting the focus away from public identifiers such as FPIs and towards standardising the form taken by system identifiers. The system identifier is to be treated as an (absolute or relative)URI,[33][34]but must not contain a URI fragment identifier (portion beginning with#).[34]The system identifier is also generally required:[35]theSYSTEMkeyword must be followed by a system identifier literal, and thePUBLICkeyword must, in the syntax for general external identifiers, be followed by literals for both the public and system identifiers.[34]As an exception to this, however, notation declarations may use a public identifier without a system identifier.[36]

In contrast to the requirement that the system identifier be a URI (classified for purposes ofHyTimeas a type offormal system identifieror FSI,[31][37]: 19 or more narrowly as astorage object identifier),[31]the SGMLFORMALfeature is disabled in XML,[33][38]since the format of public identifiers is not specified by XML (i.e. they are not explicitly required to be FPIs, although they may be). The only details which the XML specification stipulates about the public identifier are that it may be given alongside the system identifier, and may be used by an XML processor along with other information to determine an alternative URI (failing which, it is required to use the URI given in the system identifier).[34]

Identifying strings forXML namespacesare required to be non-empty URIs (such as an absolute URL; use of relative URLs is deprecated),[39]although they are not required to be resolvable URLs and may, for example, beURNs.[35]

Replacement of DTDs

edit

Additionally, alternativeschemaformats such asXML Schema (XSD)serve as a competitor to DTD in an XML context, overcoming some of the limitations of DTDs. XSD can (unlike DTDs) be validated using the same tools as any other XML document,[40]includes support forXML namespaces(which DTDs can only interpret as fixed portions of the element and attribute names in question),[41]allowsregular expressionconstraints to be placed on the format of text data such as telephone numbers, and is better able to express complex content-model structures.[40]

Thus, it is less common for XML formats to use a DTD (such as which might use FPIs for notations or external entities), and thus less common for one to contain a DOCTYPE referencing a DTD (either by FPI or only by URI—although a DOCTYPE may still be used for entity definitions embedded within the XML file itself).[42]For example, most versions ofRSS(excepting RSS 0.91) do not have an official DTD.[43]Similarly, theDocBookformat, which initially used a document type declaration identifying a DTD by an FPI, switched its primary schema definition from DTD toRELAX NGin version 5.0, and ceased to use document type declarations at that time,[44]andScalable Vector Graphics(SVG) did the same in version 1.2.[42]

Lookup and resolution of FPIs

edit

If a system identifier (such as a path or URL) is not given for a resource identified by a public identifier such as an FPI, an SGML system'sentity managerwill generate one with reference to the public identifier. Although the SGML specification itself does not specify how the entity manager should do this,[7]: 65–66 the intention was for it to use a table mapping public identifiers to system identifiers.[1]: 180 Accordingly, anSGML catalogformat was created to contain mappings from public to system identifiers; the catalog file can also specify rules for overriding the given system identifier.[7]: 65–66 [45][46][47]

Although XML mandates the use of system identifiers in more places than does SGML itself, catalogs may still be needed for remapping and overriding the given system identifier: a system identifier which is a local path may not be useful on other machines, while one which is a network URL will not be useful when a network connection is not available, for example.[35]Accordingly, an alternativeXML-based catalogformat exists for use by XML software, supporting rules for replacing or rewriting URIs, as well as for mapping FPIs to URIs.[35]

For example, an entry in an SGML catalog may give the local path (relative to the catalog file) to a copy of theScalable Vector Graphics1.1 DTD, and specify the SGML declaration (in this case, the declaration for the XML syntax) which an SGML processor should use for it:[48]

PUBLIC "-//W3C//DTD SVG 1.1//EN" svg11.dtd
DTDDECL "-//W3C//DTD SVG 1.1//EN" /usr/share/xml/declaration/xml.dcl

The schema for the alternative XML catalog format is itself defined in a DTD, itself identified by an FPI (-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN).[49]It similarly allow the mappings of FPIs to paths to be expressed although, since it is intended for use only with XML, it does not support specifying an alternative SGML declaration,[35]although extensions exist to express the remainder of the information expressible in an SGML catalog.[50]The above DTD FPI mapping is represented as follows:[49]

<publicpublicId="-//W3C//DTD SVG 1.1//EN"uri="svg11.dtd"/>

Use in HTML

edit

HTML 2 through 4

edit

HTML versions 2 through 4 (including the XML-basedXHTML1.x) were defined as profiles of SGML, and specified with an SGML declaration and adocument type definition(DTD). The particular DTD version in use was specified in a document type declaration using an FPI, sometimes (especially in the later versions, and required in XML as mentioned above) in combination with a URL for the DTD file as a system identifier.[6]: 8–9 In contrast to the SGML declaration for XML,[33]the SGML declaration for HTML enabled theFORMALfeature,[14]meaning that public identifiers used for and within HTML DTDs were required to be FPIs.

A document type declaration (for HTML 4.01 Strict)[51]containing an FPI:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" >

The FPI in the document type declaration above reads-//W3C//DTD HTML 4.01//EN,[30]while the URL is given as a system identifier. The FPI was, strictly speaking, optional: it was also possible (but uncommon) to define a custom HTML DTD and omit the FPI; in this case, the inclusion of a system identifierwithoutan FPI is signified by theSYSTEMkeyword.[6]: 6–7 One example of such a custom system identifier without an associated FPI is:[52]

<!DOCTYPE html SYSTEM "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd" >

DOCTYPE sniffing

edit

Since they were principally intended for use by SGML validators, document type declarations were initially ignored by browsers. However, older web pages were designed to display correctly in the browsers in use the time when they were created, which did not necessarily comply with the specifications for, for example,CSSin how they rendered web pages. Since this meant that improving their standards-compliance would cause browsers to display existing web pages incorrectly, browsers used the document type declaration to trigger between "modes" under which the page would be rendered.[37]: 17–18 

"Quirks mode" retained legacy behaviour from earlier browser versions to avoid breaking existing pages—for example,Internet Explorerversions 6 and 7 would render the page using the Internet Explorer 5.5 box model. "Standards mode" would conform more closely to the relevant specifications. What was at the time called "almost standards mode" and initially implemented byFirefoxandSafariwould use traditional behaviour when determining the height of table cells containing images, but otherwise behave like standards mode; this corresponded to the behaviour of the "standards mode" of Internet Explorer at the time it was introduced.[6]: 9–11 [37]: 18–19 

For example, a DOCTYPE using the HTML 4.01 Strict FPI (-//W3C//DTD HTML 4.01//EN) would trigger standards mode in Internet Explorer 6, meaning that it would use a content-box box model, while a DOCTYPE using the HTML 4.01 Transitional FPI (-//W3C//DTD HTML 4.01 Transitional//EN) would trigger quirks mode, including the use of an Internet Explorer 5.5 (border-box) box model.[6]: 9–11 In addition to the FPI, browsers would consider the presence or absence of a system identifier when deciding between quirks mode and standards mode. The absence of a DOCTYPE declaration altogether (or, for Internet Explorer 6, the DOCTYPE declaration not being the first line in the file) would trigger quirks mode.[37]: 19–20 

HTML 5

edit

HTML 5is not defined as a profile of SGML, except in its XHTML representation. As such, it is not defined using a DTD.

Early drafts for HTML 5 used theNONSGML-type FPI-//WHATWG//NONSGML HTML5//ENin the DOCTYPE in place of a DTD FPI, since it did not activate Internet Explorer 6's quirks mode.[53]This was ultimately done away with altogether, and the final HTML 5 DOCTYPE does not use an FPI. The preferred form is simply<!DOCTYPE html>(with neither a public nor system identifier), although a system identifier ofabout:legacy-compat(using theabout:URI scheme) is condoned.[54]

The XML representation (XHTML), by contrast, is permitted but not required to bear any DOCTYPE, but no validating DTD is provided for the HTML 5 schema.[55]However, various FPIs for XHTML 1.0, XHTML 1.1 and MathML DTDs are defined as instead pointing to adata:URI(so as to avoid requiring network access) containing the definitions for thecharacter entities.[56]

The sole function of an FPI in HTML 5's HTML (as opposed to XHTML) representation is triggering legacy modes. TheWHATWGHTML standard specifies a list of which FPIs should trigger quirks mode. These include the FPIs for various vendor-customised HTML DTDs. They also include the FPIs for the DTDs of the various HTML 2.0 "levels", as well as those for HTML 3.0, 3.2 and the Transitional and Frameset versions of HTML 4.0 and 4.01—except that when the HTML 4.01 (but not HTML 4.0) Transitional and Frameset FPIs are accompanied by a system identifier, they instead trigger almost‑standards mode (renamed to "limited‑quirks mode" ). The XHTML 1.0 Transitional and Frameset FPIs trigger limited‑quirks mode unconditionally. Mostly, these are specified as prefixes including the owner, class and description (but matching any language part).[52]

Relationship to URIs

edit

Increasingly, specifications use URIs rather than FPIs to handle the task of unique identification. For example,XML namespace namesare URIs.

AUniform Resource Name(URN) namespace has been defined to allow any FPI to be rewritten as a URI,[11]replacing double slashes withcolons.The earlier example may be written as the following URI:

urn:publicid:-:W3C:DTD+HTML+4.01:EN

References

edit
  1. ^abcdefghijklmnopqrstuvwxyzaaabacadaeafagahaiajakalamanaoapaqarasatauavGoldfarb, Charles F.(1990).The SGML Handbook.Oxford:Clarendon Press.ISBN0-19-853737-9.
  2. ^abcdefghijkTauber, James K. (1996-04-10)."Formal Public Identifiers (FPIs)".CoverPages.org.
  3. ^"The use of hyphens or colons in the ISO owner identifier".Entity Management.Organization for the Advancement of Structured Information Standards (OASIS). 1997-09-10. OASIS Technical Resolution 9401:1997.
  4. ^"sgml-iso-entities-8879.1986/catalog".A Debian Package for baseline SGML data.Debian.19 May 2013.
  5. ^"DocBook notations module V4.5".Organization for the Advancement of Structured Information Standards (OASIS). 2006-10-03."<!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN" >"
  6. ^abcdefghiLloyd, Ian (2008).The Ultimate HTML Reference.Collingwood, Victoria:SitePoint.ISBN978-0-9802858-8-8.
  7. ^abcBerners-Lee, Tim;Connolly, Daniel W. (November 1995).Hypertext Markup Language - 2.0.Network Working Group.doi:10.17487/RFC1866.RFC1866.Historic.Obsoleted byRFC2854.
  8. ^"Appendix A: Example Document Type Definition"(PDF).Department of Defense application of MIL-PRF-28001 using Standard Generalized Markup Language (SGML).United States Department of Defense.1995-06-30. p. 138. MIL-HDBK-28001.
  9. ^ab"Authoritarian right: research methodology and voting data".Corporate Europe Observatory. 2019-05-15.
  10. ^abcdefDeRose, Steven J.;Durand, David G. (1994).Making Hypermedia Work: A User's Guide to HyTime.Norwell, Massachusetts/Dordrecht, Netherlands:Kluwer Academic Publishers.ISBN0-7923-9432-1.
  11. ^abWalsh, Norman; Cowan, John; Grosso, Paul (August 2001).A URN Namespace for Public Identifiers.Network Working Group.doi:10.17487/RFC3151.RFC3151.Informational.
  12. ^abcWalsh, Norman (1998)."A DTD for DSSSL Programming with DocBook".DSSSL stylesheets for DocBook.DocBookproject.
  13. ^ab"Proposed TC for WebSGML Adaptations for SGML".1997-06-01.ISO/IEC JTC 1/SC18/WG8 N1929.
  14. ^abc"20: SGML Declaration of HTML 4".HTML 4.01 Specification.W3C.
  15. ^"dbl1nds.dsl".DSSSL stylesheets for DocBook.DocBookproject.
  16. ^"dbl1srLatn.dsl".DSSSL stylesheets for DocBook.DocBookproject.
  17. ^"common/catalog".DSSSL stylesheets for DocBook, version 1.79.DocBookproject.
  18. ^"ISOlat1 entity set".International Organization for Standardization.1986.
  19. ^"ISO Added Latin 1 Entities V0.3".Organization for the Advancement of Structured Information Standards (OASIS). 2002.
  20. ^abc"htmlmathml-f entity set".W3C.2011.
  21. ^Udell, Jon(2011-09-30)."The long tail of the iCalendar ecosystem".
  22. ^"Issue #26558: Cannot subscribe to birthday calendar from Facebook".ownCloud web server core.
  23. ^abBeck, Jeff; Lapeyre, Deborah; Rosenblum, Bruce (2007)."Archiving and Interchange DTD Suite Notation Declarations".NCBI Book DTD and NCBI Collection DTD Tag Library version 2.3.National Center for Biotechnology Information/National Library of Medicine.
  24. ^"dbl1en.dsl".DSSSL stylesheets for DocBook.DocBookproject.
  25. ^"dbl1fr.dsl".DSSSL stylesheets for DocBook.DocBookproject.
  26. ^"dbl1el.dsl".DSSSL stylesheets for DocBook.DocBookproject.
  27. ^"dbl1fr.ent".DSSSL stylesheets for DocBook, version 1.79.DocBookproject.
  28. ^"dbl1en.ent".DSSSL stylesheets for DocBook, version 1.79.DocBookproject.
  29. ^Definition: FPI (Formal Public Identifier) [Web and XML Glossary]
  30. ^ab"!DOCTYPE".Retrieved10 September2016.
  31. ^abc"Issue A: a simple entity catalog format".Entity Management.Organization for the Advancement of Structured Information Standards (OASIS). 1997-09-10. OASIS Technical Resolution 9401:1997.
  32. ^"2.3 Common Syntactic Constructs (§ Literals)".Extensible Markup Language (XML) 1.0(Fifth ed.).W3C.2008-11-26.
  33. ^abcClark, James(1997-12-15)."Comparison of SGML and XML".W3C.NOTE-sgml-xml-971215.
  34. ^abcd"4.2.2 External Entities".Extensible Markup Language (XML) 1.0(Fifth ed.).W3C.2008-11-26.
  35. ^abcdeWalsh, Norman (2001-08-06)."XML Catalogs".The Organization for the Advancement of Structured Information Standards (OASIS).
  36. ^"4.7 Notation Declarations".Extensible Markup Language (XML) 1.0(Fifth ed.).W3C.2008-11-26.
  37. ^abcdOlsson, Tommy; O'Brien, Paul (2008).The Ultimate CSS Reference.Collingwood, Victoria:SitePoint.ISBN978-0-9802858-5-7.
  38. ^"xml/declaration/xml.dcl: SGML Declaration for XML 1.0".sgml-data.Debian.19 May 2013.
  39. ^Bray, Tim; Hollander, Dave; Layman, Andrew; Tobin, Richard; Thompson, Henry S. (2009-12-08)."Namespaces in XML 1.0"(Third ed.).W3C.
  40. ^abPayne, James (2010).Beginning Python: Using Python 2.6 and Python 3.1.Wrox/Wiley.pp. 268–271.ISBN978-0-470-41463-7.
  41. ^Sall, Kenneth B. (2002)."XML and Namespaces (§ Handling Namespaces in a DTD or XML Schema)".XML Family of Specifications: A Practical Guide.InformIT/Addison-Wesley.ISBN0-201-70359-9.
  42. ^ab"1.3 Defining an SVG Tiny 1.2 document".Scalable Vector Graphics (SVG) Tiny 1.2 Specification.W3C.2008-12-22.A few key differences from SVG Tiny 1.1 should be noted: […] There is no DTD for SVG 1.2, and therefore no need to specify the DOCTYPE for an SVG 1.2 document (unless it is desired to use the internal DTD subset ([XML10], section 2.8, and [XML11], section 2.8), for purposes of entity definitions for example).
  43. ^Hammersley, Ben (2003)."Chapter 4. RSS 0.91 and 0.92 (Really Simple Syndication)".Content Syndication with RSS.O'Reilly Media.ISBN9780596003838.
  44. ^Kosek, Jirka; Walsh, Norman; Hamilton, Dick; Smith, Michael (2009-06-16)."Relaxing with DocBook".DocBook V5.0: The Transition Guide.DocBookproject.
  45. ^Clark, James."SP - Catalogs".SP: An SGML System Conforming to International Standard ISO 8879.
  46. ^Grosso, Paul (1996)."Registration of MIME media type Application/SGML-Open-Catalog".IANA.
  47. ^"Entity Management".Organization for the Advancement of Structured Information Standards (OASIS). 1997-09-10. OASIS Technical Resolution 9401:1997.
  48. ^"xml/svg/catalog: SVG DTDs".sgml-data.Debian.19 May 2013.
  49. ^ab"xml/svg/catalog.xml".sgml-data.Debian.19 May 2013.
  50. ^GlobalTransCorp (2004-02-28)."tr9401.dtd: XML Catalogs V1.0-Based Extension V1.0".Debian.
  51. ^"HTML 4.01 Specification".Retrieved10 September2016.
  52. ^ab"13.2.6.4.1 The" initial "insertion mode".HTML Standard.WHATWG.
  53. ^Sivonen, Henri (2005-04-08)."[whatwg] [html5] tags, elements and generated DOM".WHATWGMailing List Archive.
  54. ^"13.1.1 The DOCTYPE".HTML Standard.WHATWG.
  55. ^"14.1 Writing documents in the XML syntax".HTML Standard.WHATWG.
  56. ^"14.2 Parsing XML documents".HTML Standard.WHATWG.