A structured document is an electronic document where some method of markup is used to identify the whole and parts of the document as having various meanings beyond their formatting. For example, a structured document might identify a certain portion as a "chapter title" (or "code sample" or "quatrain") rather than as "Helvetica bold 24" or "indented Courier". Such portions in general are commonly called "components" or "elements" of a document.
Structured documents generally focus on labeling things that can be used for a variety of processing purposes, not merely formatting. For example, explicit labeling of "chapter title" or "emphasis" is far more useful to systems for the visually impaired, than merely "Helvetica bold 24" or "italic". In the same way, meaningful labeling of the many items on a technical information sheet enables far better integration with databases, search systems, online catalogs, and so on.
Structured documents generally support at least hierarchical structures, for example lists, not merely list items; sections, not merely section headings; and so on. This is in stark contrast to formatting-oriented systems. High-end systems also support multiple independent and/or overlapping sets of components.
Structured document systems commonly permit creating explicit rules defining component types and how they may be combined. Such a set of rules is called a "schema" by analogy with database schemas. Several formal languages exist for specifying them, such as XSD, Relax NG, and Schematron. A structured document which obeys the rules of the schema is commonly called "valid according to that schema". Some systems also support documents with component of arbitrary types and combinations, but still with syntactic rules for how those components are identified.
Lie and Saarela noted the "Standard Generalized Markup Language (SGML) has pioneered the concept of structured documents", although earlier systems such as Scribe, Augment, and FRESS provided many structured-document features and capabilities, and SGML's offspring XML is now favored.
One very widely used representation for structured documents is HTML, a schema defined and described by the W3C. However, HTML has not only tags for meaning-oriented components such as paragraph, title, and code; but also format-oriented ones such as italic, bold, and most table. In practice, HTML is sometimes used as a structured document system, but often used as a formatting language.
Many domains use structured documents via domain-specific schemas they have co-operatively developed, such as JATS for journal publishing, TEI for literary documents, UBL and EDI for business interchange, XTCE for spacecraft telemetry, REST for Web interfaces, and countless more. All these cases use specific schemas based on XML.
In writing structured documents the focus is on encoding the logical structure of a document, with less or even no explicit work devoted to its presentation to humans by printed pages or screens (in some cases, no such use is even expected). Structured documents can easily be processed by computer systems to extract and present derivative forms of the document. In most Wikipedia articles for example, a table of contents is automatically generated from the different heading tags in the body of the document. Because the SGML conversion of the Oxford English Dictionary explicitly distinguished the many different meanings which attach to the print version's use of italics, search tools can retrieve entries based on etymology, quotations, and many other features of interest. When HTML provides structural rather than merely formatting information, visually impaired users can be easily given a more useful reading interface. When travel companies provide itineraries as structured documents rather than just displays, user tools can easily extract the necessary facts and pass them on to calendar or other applications.
In HTML a part of the logical structure of a document may be the document body;
<body>, containing a first level heading;
<h1>, and a paragraph;
<body> <h1>Structured document</h1> <p>A <strong class="selflink">structured document</strong> is an <a href="/wiki/Electronic_document" title="Electronic document">electronic document</a> where some method of <a href="/wiki/Markup_language" title="Markup language">markup</a> is used to identify the whole and parts of the document as having various meanings beyond their formatting.</p> </body>
One of the most attractive features of structured documents is that they can be reused in many contexts and presented in various ways on mobile phones, TV screens, speech synthesisers, and any other device which can be programmed to process them.
Other meaning can be ascribed to text which isn't "structural" in quite the same sense as larger objects, but is still considered "document structure" because it expresses claims about the scope and nature or ontology of portions of a document, rather than instructions about its presentation. In the HTML fragment above, the
<strong> element means that the enclosed text is emphatic. In visual terms this commonly rendered via bold, just like
<b>; but a speech interface would instead likely use voice inflection. The term semantic markup excludes markup like
<b> which directly expresses no meaning other than an instruction to a visual display (although an intelligent agent may be able to discern a structural meaning lurking behind the tag). The "strong" tag is "descriptive" or "structural" in that it is intended to label an abstract, quasi-linguistic property of its content, rather than to describe the appropriate presentation in some particular medium.
<a> tag is used for another slightly different kind of structure, namely the interconnection or cross-reference structure, rather than the interval section division. This is most definitely structure, and in fact it is possible to create alternate markup for documents that expresses the same particular structures in either way (for example, using transclusion to represent section contents, rather than navigational hyperlink presentations).
HTML from early on has also had tags which express presentational semantics, such as bold (
<b>) or italic (
<i>), or to alter font sizes or which had other effects on the presentation. Modern versions of markup languages discourage such markup in favor of descriptive markup which is mapped to particular presentations via style sheets, a method pioneered by systems such as Scribe and FRESS. Different style sheets can be attached to any markup, semantic or presentational, to produce different presentations, although mapping an tag name "italic" to boldface presentation is not entirely intuitive.
In principle, just what constitutes "structure" vs. non-structure can vary. In a book specifically about typography, tagging something as "italic" or "bold" may well be the whole point. For example, a discussion of when to use particular styles will likely want to give examples and counter-examples, which would no longer make sense if the rendering is not in sync with the prose. Similarly, a particular edition of a document may be of interest not only for its content but for its typographic practice as well, in which case describing that practice is not only desirable but necessary. This problem is not unique to document structure, however; it also arises in grammar when discussing grammar, and in many other cases.