XSL-FO ( XSL Formatting Objects ) is a markup language for XML document formatting that is most often used to generate PDF files. XSL-FO is part of XSL (Extensible Stylesheet Language), a set of W3C technologies designed for the transformation and formatting of XML data. The other parts of XSL are XSLT and XPath . Version 1.1 of XSL-FO was published in 2006.
98-614: XSL-FO is considered feature complete by W3C: the last update for the Working Draft was in January 2012, and its Working Group closed in November 2013. Unlike the combination of HTML and CSS , XSL-FO is a unified presentational language. It has no semantic markup as this term is used in HTML. And, unlike CSS which modifies the default presentation of an external XML or HTML document, it stores all of
196-570: A system identifier . Programs for reading documents may not be required to read the external subset. Any valid SGML or XML document that references an external subset in its DTD, or whose body contains references to parsed external entities declared in its DTD (including those declared within its internal subset ), may only be partially parsed but cannot be fully validated by validating SGML or XML parsers in their standalone mode (this means that these validating parsers do not attempt to retrieve these external entities, and their replacement text
294-400: A XML Catalog ) the schema used in the parsed XML document and that is validated in another language. A common misconception holds that a non-validating XML parser does not have to read document type declarations, when in fact, the document type declarations must still be scanned for correct syntax as well as validity of declarations, and the parser must still parse all entity declarations in
392-401: A boxed version of Apple 's Mac OS X Public Beta operating system was released. Between September 2005 and May 2006, Microsoft released community technology preview s ( CTP s) for Windows Vista . From 2009 to 2011, Minecraft was in public beta. In February 2005, ZDNet published an article about the phenomenon of a beta version often staying for years and being used as if it were at
490-537: A closed beta , or an open beta ; closed beta versions are released to a restricted group of individuals for a user test by invitation, while open beta testers are from a larger group, or anyone interested. Private beta could be suitable for the software that is capable of delivering value but is not ready to be used by everyone either due to scaling issues, lack of documentation or still missing vital features. The testers report any bugs that they find, and sometimes suggest additional features they think should be available in
588-438: A feature freeze , indicating that no more features will be added to the software. At this time, the software is said to be feature-complete . A beta test is carried out following acceptance testing at the supplier's site (the alpha test) and immediately before the general release of the software as a product. A feature-complete (FC) version of a piece of software has all of its planned or primary features implemented but
686-516: A macro . The entity declaration assigns it a value that is retained throughout the document. A common use is to have a name more recognizable than a numeric character reference for an unfamiliar character. Entities help to improve legibility of an XML text. In general, there are two types: internal and external. An example of internal entity declarations (here in an internal DTD subset of an SGML document) is: Internal entities may be defined in any order, as long as they are not referenced and parsed in
784-403: A preview , preview release , prototype , technical preview or technology preview ( TP ), or early access . Beta testers are people who actively report issues with beta software. They are usually customers or representatives of prospective customers of the organization that develops the software. Beta testers tend to volunteer their services free of charge but often receive versions of
882-424: A MIME type, interpreted as a relative URI, but it could be an absolute URI to a specific renderer, or a URN indicating an OS-specific object identifier such as a UUID). The declared notation name must be unique within all the document type declaration, i.e. in the external subset as well as the internal subset, at least for conformance with XML. Notations can be associated to unparsed external entities included in
980-467: A beta version to the users is called beta release and is typically the first time that the software is available outside of the organization that developed it. Software beta releases can be either open or closed , depending on whether they are openly available or only available to a limited audience. Beta version software is often useful for demonstrations and previews within an organization and to prospective customers. Some developers refer to this stage as
1078-402: A block on the "left", or start inline direction, and a block sequence on the "right", or end inline direction. The block on the left is conceptually what would be the number or bullet in a list. However, it could just as easily be a string of text, as one might see in a glossary entry. The block on the right works as expected. Both of these blocks can be block containers, or have multiple blocks in
SECTION 10
#17328516731091176-523: A different orientation from the rest of the document, or simply if one needs to orient the text for layout purposes. These blocks can contain virtually any kind of content, from tables to lists or even other blocks of reoriented text. Version 1.1 of XSL-FO adds a number of new features to version 1.0. XSL-FO 1.0 was fairly restrictive about what text was allowed to go in what areas of a page. Version 1.1 loosens these restrictions significantly, allowing flowing text to be mapped into multiple explicit regions on
1274-483: A figure caption, "image shown is 50% actual size"). When trying to decide whether or not XSL-FO will work for a given document, the following typographic and layout requirements usually indicate that XSL-FO will not work (although some of these may be satisfied by proprietary extensions): XML and HTML standards, with the CSS standard, since CSS2 ( paged media module) starts to supply basic features to printed media. With
1372-408: A fixed value ( #FIXED ), or which value should be used as a default value ("…") in case the given attribute is left out in an XML tag. Attribute list declarations are ignored by non-validating SGML and XML parsers (in which cases any attribute is accepted within all elements of the parsed document), but these declarations are still checked for well-formedness and validity. An entity is similar to
1470-492: A list of named page layouts. The second section is a list of document data, with markup, that uses the various page layouts to determine how the content fills the various pages. Page layouts define the properties of the page. They can define the directions for the flow of text, so as to match the conventions for the language in question. They define the size of a page as well as the margins of that page. More importantly, they can define sequences of pages that allow for effects where
1568-551: A list of text data, inline markup elements, or a combination of the two. Content may also be added to the margins of the document, for page numbers, chapter headings and the like. Blocks and inline elements function in much the same way as for CSS, though some of the rules for padding and margins differ between FO and CSS. The direction, relative to the page orientation, for the progression of blocks and inlines can be fully specified, thus allowing FO documents to function under languages that are read different from English. The language of
1666-408: A notation name "type-image-svg". However, notation names usually follow a naming convention that is specific to the application generating or using the notation: notations are interpreted as additional meta-data whose effective content is an external entity and either a PUBLIC FPI, registered in the catalogs used by XML or SGML parsers, or a SYSTEM URI, whose interpretation is application dependent (here
1764-446: A notation named "type-image-svg" that references the standard public FPI and the system identifier (the standard URI) of an SVG 1.1 document, instead of specifying just a system identifier as in the first example (which was a relative URI interpreted locally as a MIME type). This annotation is referenced directly within the unparsed "type" attribute of the "img" element, but its content is not retrieved. It also declares another notation for
1862-484: A page. This allows for more newspaper-like typesetting. Many output formats for XSL-FO processors, specifically PDF, have bookmarking features. These allow the format to specify a string of text in a separate window that can be selected by the user. When selected, the document window scrolls immediately to a specific region of the document. XSL-FO v1.1 now provides the ability to create named bookmarks in XSL-FO, thus allowing
1960-464: A resolvable location. SGML allows mapping public identifiers to system identifiers in catalogs that are optionally available to the URI resolvers used by document parsing software. This DOCTYPE can only appear after the optional XML declaration , and before the document body, if the document syntax conforms to XML. This includes XHTML documents: An additional internal subset can also be provided after
2058-477: A single list entry. Numbering of XSL-FO lists, when they are numbered, is expected to be done by the XSLT, or whatever other process, that generated the XSL-FO document. As such, number lists are to be explicitly numbered in XSL-FO. The user can specify Widow and Orphan for blocks or for the flow itself, and allow the attributes to cascade into child blocks. Additionally, blocks can be specified to be kept together on
SECTION 20
#17328516731092156-450: A single page. For example, an image block and the description of that image can be set to never be separated. The FO processor will do its best to adhere to these commands, even if it requires creating a great deal of empty space on a page. The user can create footnotes that appear at the bottom of a page. The footnote is written, in the FO document, in the regular flow of text at the point where it
2254-459: A software product (e.g., an operating system ). It typically consists of several stages, such as pre-alpha, alpha, beta, and release candidate, before the final version, or "gold", is released to the public. Pre-alpha refers to the early stages of development, when the software is still being designed and built. Alpha testing is the first phase of formal testing, during which the software is tested internally using white-box techniques . Beta testing
2352-462: A software product is available for purchase, depending, however, on language, region, and electronic vs. media availability. Commercialization activities could include security and compliance tests, as well as localization and worldwide availability. The time between RTM and GA can take from days to months before a generally available release can be declared, due to the time needed to complete all commercialization activities required by GA. At this stage,
2450-518: A specific set of pages or to cover the entire document. This allows the user to specify something like, "Page 2 out of 15", where page 15 is the page number of a last page definition. Table markers allow the user to create dynamic content within table headers and footers, such as running totals at the bottom of each page of a table or "table continued" indicators. XSL-FO 1.1 adds the keywords "inside" and "outside" for side floats, which makes it possible to achieve page layouts with marginalia positioned on
2548-457: A variety of other features are available. These features are comparable to CSS's layout features, though some of those features are expected to be built by the XSLT. XSL-FO documents are XML documents, but they do not have to conform to any DTD or schema. Instead, they conform to a syntax defined in the XSL-FO specification . XSL-FO documents contain two required sections. The first section details
2646-452: A vendor-specific application, to annotate the "sgml" root element in the document. In both cases, the declared notation named is used directly in a declared "type" attribute, whose content is specified in the DTD with the "NOTATION" attribute type (this "type" attribute is declared for the "sgml" element, as well as for the "img" element). However, the "title" attribute of the "img" element specifies
2744-433: A way that it becomes possible to parse XML documents with non-validating XML parsers (if the only purpose of the external DTD subset was to define the schema). In addition, documents for these XML schema languages must be parsed separately, so validating the schema of XML documents in pure standalone mode is not really possible with these languages: the document type declaration remains necessary for at least identifying (with
2842-545: Is allowed to flow from the above section to the below section. Because of the nature of XSL-FO's page specification, multiple pages may actually have different numbers and widths of columns. As such, text can flow from a 3 column page to a 5 column page to a 1 column page quite easily. All FO features work within the restrictions of a multi-column page. We can span multiple columns by specifying two attributes i.e.,. span, padding-after . An XSL-FO list is, essentially, two sets of blocks stacked side by side. An entry consists of
2940-446: Is also declared with its own notation). Notations are also completely opaque for XML and SGML parsers, so they are not differentiated by the type of the external entity that they may reference (for these parsers they just have a unique name associated to a public identifier (an FPI) and/or a system identifier (a URI)). Some applications (but not XML or SGML parsers themselves) also allow referencing notations indirectly by naming them in
3038-412: Is called code complete when the development team agrees that no entirely new source code will be added to this release. There could still be source code changes to fix defects, changes to documentation and data files, and peripheral code for test cases or utilities. Beta testers, if privately selected, will often be credited for using the release candidate as though it were a finished product. Beta testing
XSL Formatting Objects - Misplaced Pages Continue
3136-740: Is conducted in a client's or customer's location and to test the software from a user's perspective. Also called production release , the stable release is the last release candidate ( RC ) which has passed all stages of verification and tests. Any known remaining bugs are considered acceptable. This release goes to production . Some software products (e.g. Linux distributions like Debian ) also have long-term support ( LTS ) releases which are based on full releases that have already been tried and tested and receive only security updates. This allows developers to allocate more time toward product development instead of updating code or finding and fixing newly introduced bugs due to outdated assumptions about
3234-428: Is exceptionally powerful. It allows for the automatic generation of a table of contents, linked references, an index, and various other possibilities. An XSL-FO document is not like a PDF or a PostScript document. It does not definitively describe the layout of the text on various pages. Instead, it describes what the pages look like and where the various contents go. From there, an FO processor determines how to position
3332-424: Is generated, it is then passed to an application called an FO processor. FO processors convert the XSL-FO document into something that is readable, printable or both. The most common output of XSL-FO is a PDF file or as PostScript , but some FO processors can output to other formats like RTF files or even just a window in the user's GUI displaying the sequence of pages and their contents. The XSLT language itself
3430-538: Is located by its defined SYSTEM identifier "example1.svg" (also interpreted as a relative URI). The effective content for the "img" element be the content of this second external resource. The difference with the GIF image, is that the SVG image is parsed within the SGML document, according to the declarations in the DTD, where the GIF image is just referenced as an opaque external object (which
3528-410: Is not accessible). However, such documents are still fully parsable in the non -standalone mode of validating parsers, which signals an error if it can not locate these external entities with their specified public identifier (FPI) or system identifier (a URI), or are inaccessible. (Notations declared in the DTD are also referencing external entities, but these unparsed entities are not needed for
3626-488: Is not parsable with SGML) via its "data" attribute (whose value type is an opaque ENTITY). Only one notation name may be specified in the value of ENTITY attributes (there is no support in SGML, XML 1.0 or XML 1.1 for multiple notation names in the same declared external ENTITY, so separate attributes are needed). However multiple external entities may be referenced (in a space-separated list of names) in attributes declared with type ENTITIES, and where each named external entity
3724-477: Is not thoroughly tested by the developer before it is released to customers. Alpha software may contain serious errors, and any resulting instability could cause crashes or data loss. Alpha software may not contain all of the features that are planned for the final version. In general, external availability of alpha software is uncommon for proprietary software , while open source software often has publicly available alpha versions. The alpha phase usually ends with
3822-448: Is not yet final due to bugs , performance or stability issues. This occurs at the end of alpha testing in development . Usually, feature-complete software still has to undergo beta testing and bug fixing , as well as performance or stability enhancement before it can go to release candidate , and finally gold status. Beta, named after the second letter of the Greek alphabet , is
3920-424: Is parsed as if it was: Reference to the "author" internal entity is not substituted in the replacement text of the "signature" internal entity. Instead, it is replaced only when the "signature" entity reference is parsed within the content of the "sgml" element, but only by validating parsers (non-validating parsers do not substitute entity references occurring within contents of element or within attribute values, in
4018-607: Is referenced. The reference is represented as an inline definition, though it is not required. The body is one or more blocks that are placed by the FO processor to the bottom of the page. The FO processor guarantees that wherever the reference is, the footnote cited by that reference will begin on the same page. This will be so even if it means creating extra empty space on a page. An FO table functions much like an HTML/CSS table. The user specifies rows of data for each individual cell. The user can, also, specify some styling information for each column, such as background color. Additionally,
XSL Formatting Objects - Misplaced Pages Continue
4116-446: Is sold as part of a bundle in a related computer hardware sale and typically where the software and related hardware is ultimately to be available and sold on mass/public basis at retail stores to indicate that the software has met a defined quality level and is ready for mass retail distribution. RTM could also mean in other contexts that the software has been delivered or released to a client or customer for installation or distribution to
4214-403: Is specified between "&" and ";") are not replaced like usual named entities (defined with a CDATA value), but are left as distinct unparsed tokens that may be used either as the value of an element attribute (like above) or within the element contents, provided that either the DTD allows such external entities in the declared content type of elements or in the declared type of attributes (here
4312-455: Is the first phase of software testing (alpha is the first letter of the Greek alphabet , used as the number 1). In this phase, developers generally test the software using white-box techniques . Additional validation is then performed using black-box or gray-box techniques, by another testing team. Moving to black-box testing inside the organization is known as alpha release . Alpha software
4410-427: Is the next phase, in which the software is tested by a larger group of users, typically outside of the organization that developed it. The beta phase is focused on reducing impacts on users and may include usability testing. After beta testing, the software may go through one or more release candidate phases, in which it is refined and tested further, before the final version is released. Some software, particularly in
4508-409: Is typically the final build of a piece of software in the beta stages for developers. Typically, for iOS , it is the final build before a major release, however, there have been a few exceptions. RTM is typically used in certain retail mass-production software contexts—as opposed to a specialized software production or project in a commercial or government production and distribution—where the software
4606-436: Is used in newspapers or magazines. If content in those documents does not fit in the required space, some of it is trimmed away until it does fit. XSL-FO does not easily handle the tight restrictions of magazine layout; indeed, in many cases, it lacks the ability to express some forms of said layout. Despite the basic nature of the language's design, it is capable of a great deal of expressiveness. Tables, lists, side floats, and
4704-434: The "URN:''name''" value of a standard CDATA attribute, everywhere a URI can be specified. However this behaviour is application-specific, and requires that the application maintains a catalog of known URNs to resolve them into the notations that have been parsed in a standard SGML or XML parser. This use allows notations to be defined only in a DTD stored as an external entity and referenced only as
4802-484: The ENTITY type for the data attribute), or the SGML parser is not validating the content. Notations may also be associated directly to elements as additional meta-data, without associating them to another external entity, by giving their names as possible values of some additional attributes (also declared in the DTD within the <!ATTLIST ...> declaration of the element). For example: The example above shows
4900-571: The 32-bit editions of Windows XP and two service packs for the 64-bit editions. Such service releases contain a collection of updates, fixes, and enhancements, delivered in the form of a single installable package. They may also implement new features. Some software is released with the expectation of regular support. Classes of software that generally involve protracted support as the norm include anti-virus suites and massively multiplayer online games . Continuing with this Windows XP example, Microsoft did offer paid updates for five more years after
4998-521: The CSS Paged Media Module Level 3 , W3C is completing the formulation of an integrated standard for document formatting and to generate PDFs. So, since 2013, CSS3-paged is a W3C proposal for an XSL-FO replacement. Design notes for a Version 2.0 of XSL Formatting Objects were first published in 2009 and last updated in 2012. Feature complete The software release life cycle is the process of developing, testing, and distributing
SECTION 50
#17328516731095096-465: The ISO SGML standard effort. XML uses a subset of SGML DTD. As of 2009 , newer XML namespace -aware schema languages (such as W3C XML Schema and ISO RELAX NG ) have largely superseded DTDs as a better way to validate XML structure. A DTD is associated with an XML or SGML document by means of a document type declaration (DOCTYPE). The DOCTYPE appears in the syntactic fragment doctypedecl near
5194-596: The Windows Insider Program launched in 2014 are termed "Insider Preview builds". "Beta" may also indicate something more like a release candidate , or as a form of time-limited demo, or marketing technique. Document Type Definition A document type definition ( DTD ) is a specification file that contains set of markup declarations that define a document type for an SGML -family markup language ( GML , SGML , XML , HTML ). The DTD specification file can be used to validate documents. A DTD defines
5292-655: The type of each attribute value, if not an explicit set of valid values. DTD markup declarations declare which element types , attribute lists , entities , and notations are allowed in the structure of the corresponding class of XML documents. An element type declaration defines an element and its possible content. A valid XML document contains only elements that are defined in the DTD. Various keywords and characters specify an element's content: For example: Element type declarations are ignored by non-validating SGML and XML parsers (in which cases, any elements are accepted in any order, and in any number of occurrences in
5390-425: The "alpha/beta" test terminology originated at IBM . Similar terminologies for IBM's software development were used by people involved with IBM from at least the 1950s (and probably earlier). "A" test was the verification of a new product before the public announcement. The "B" test was the verification before releasing the product to be manufactured. The "C" test was the final test before the general availability of
5488-400: The DTD loses its special role outside the DTD and it becomes a literal character. However, the references to predefined character entities are substituted wherever they occur, without needing a validating parser (they are only introduced by the "&" character). Notations are used in SGML or XML. They provide a complete reference to unparsed external entities whose interpretation is left to
5586-444: The DTD or in the body of the document, in their order of parsing: it is valid to include a reference to a still undefined entity within the content of a parsed entity, but it is invalid to include anywhere else any named entity reference before this entity has been fully defined, including all other internal entities referenced in its defined content (this also prevents circular or recursive definitions of internal entities). This document
5684-734: The DTD or in the document body but not declared: The XML DTD syntax is one of several XML schema languages. However, many of the schema languages do not fully replace the XML DTD. Notably, the XML DTD allows defining entities and notations that have no direct equivalents in DTD-less XML (because internal entities and parsable external entities are not part of XML schema languages, and because other unparsed external entities and notations have no simple equivalent mappings in most XML schema languages). Most XML schema languages are only replacements for element declarations and attribute list declarations, in such
5782-414: The FO specification, unlike that of CSS 2.1, uses direction-neutral terms like start and end rather than left and right when describing these directions. XSL-FO's basic content markup is derived from CSS and its cascading rules. As such, many attributes in XSL-FO propagate into the child elements unless explicitly overridden. XSL-FO is capable of a great deal of textual layout functionality. In addition to
5880-467: The application (which interprets them directly or retrieves the external entity themselves), by assigning them a simple name, which is usable in the body of the document. For example, notations may be used to reference non-XML data in an XML 1.1 document. For example, to annotate SVG images to associate them with a specific renderer: This declares the TEXT of external images with this type, and associates it with
5978-530: The body of the SGML or XML document. The PUBLIC or SYSTEM parameter of these external entities specifies the FPI and/or the URI where the unparsed data of the external entity is located, and the additional NDATA parameter of these defined entities specifies the additional notation (i.e., effectively the MIME type here). For example: Within the body of the SGML document, these referenced external entities (whose name
SECTION 60
#17328516731096076-504: The body of the document. This is possible because the replacement text specified in the internal entity definitions permits a distinction between parameter entity references (that are introduced by the "%" character and whose replacement applies to the parsed DTD contents) and general entity references (that are introduced by the "&" character and whose replacement is delayed until they are effectively parsed and validated). The "%" character for introducing parameter entity references in
6174-401: The concept of pages is an integral part of XSL-FO's structure. FO works best for what could be called "content-driven" design. This is the standard method of layout for books, articles, legal documents, and so forth. It involves a single flowing span of fairly contiguous text, with various repeating information built into the margins of a page. This is as opposed to "layout-driven" design, which
6272-461: The content model of these documents. The following example of a DOCTYPE contains both public and system identifiers: All HTML 4.01 documents conform to one of three SGML DTDs. The public identifiers of these DTDs are constant and are as follows: The system identifiers of these DTDs, if present in the DOCTYPE, are URI references . A system identifier usually points to a specific set of declarations in
6370-454: The document's data within itself. The general idea behind XSL-FO's use is that the user writes a document, not in FO, but in an XML language. XHTML , DocBook , and TEI are all possible examples. Then, the user obtains an XSLT transform, either by writing one themselves or by finding one for the document type in question. This XSLT transform converts the XML into XSL-FO. Once the XSL-FO document
6468-484: The end of extended support. This means that support ended on April 8, 2019. When software is no longer sold or supported, the product is said to have reached end-of-life, to be discontinued, retired, deprecated, abandoned, or obsolete, but user loyalty may continue its existence for some time, even long after its platform is obsolete—e.g., the Common Desktop Environment and Sinclair ZX Spectrum . After
6566-464: The end user to verify the integrity and authenticity of the software purchase. A copy of the RTM build known as the " gold master " or GM is sent for mass duplication or disc replication if applicable. The terminology is taken from the audio record-making industry, specifically the process of mastering . RTM precedes general availability (GA) when the product is released to the public. A golden master build (GM)
6664-422: The end-of-life date, the developer will usually not implement any new features, fix existing defects, bugs, or vulnerabilities (whether known before that date or not), or provide any support for the product. If the developer wishes, they may release the source code, so the platform will live again, and be maintained by volunteers, and if not, it may be reverse-engineered later when it becomes abandonware . Usage of
6762-411: The external subset of documents, and allows these documents to remain compatible with validating XML or SGML parsers that have no direct support for notations. Notations are not used in HTML, or in basic profiles for XHTML and SVG, because: Even in validating SGML or XML 1.0 or XML 1.1 parsers, the external entities referenced by an FPI and/or URI in declared notations are not retrieved automatically by
6860-406: The external subset: Alternatively, only the internal subset may be provided: Finally, the document type definition may include no subset at all; in that case, it just specifies that the document has a single top-level element (this is an implicit requirement for all valid XML and HTML documents, but not for document fragments or for all SGML documents, whose top-level elements may be different from
6958-611: The final version. Open betas serve the dual purpose of demonstrating a product to potential consumers, and testing among a wide user base is likely to bring to light obscure errors that a much smaller testing team might not find. A release candidate ( RC ), also known as gamma testing or "going silver", is a beta version with the potential to be a stable product, which is ready to release unless significant bugs emerge. In this stage of product stabilization, all product features have been designed, coded, and tested through one or more beta cycles with no known showstopper-class bugs. A release
7056-437: The general purpose behind XSL-FO is to generate paged, printed media. XSL-FO documents themselves are usually used as intermediaries, mostly to generate either PDF files or a printed document as the final form to be distributed. This is as opposed to how HTML is generated and distributed as a final form directly to the user. Distributing the final PDF rather than the formatting language input (whether HTML/CSS or XSL-FO) means on
7154-467: The implied root element), and it indicates the type name of the root element: DTDs describe the structure of a class of documents via element and attribute-list declarations. Element declarations name the allowable set of elements within the document, and specify whether and how declared elements and runs of character data may be contained within each element. Attribute-list declarations name the allowable set of attributes for each declared element, including
7252-420: The information as specified above, XSL-FO's language allows for the specification of the following. A page can be defined to have multiple columns. When this is the case, blocks flow from one column into the next by default. Individual blocks can be set to span all columns, creating a textual break in the page. The columns above this break will flow into each other, as will the columns below the break. But no text
7350-401: The internal entity "example1SVGTitle" whose declaration that does not define an annotation, so it is parsed by validating parsers and the entity replacement text is "Title of example1.svg". The content of the "img" element references another external entity "example1SVG" whose declaration also does not define an notation, so it is also parsed by validating parsers and the entity replacement text
7448-399: The internet and technology industries, is released in a perpetual beta state, meaning that it is continuously being updated and improved, and is never considered to be a fully completed product. This approach allows for a more agile development process and enables the software to be released and used by users earlier in the development cycle. Pre-alpha refers to all activities performed during
7546-412: The odd and even pages look different. For example, one can define a page layout sequence that gives extra space to the inner margins for printing purposes; this allows more space to be given to the margin where the book will be bound. The document data portion is broken up into a sequence of flows, where each flow is attached to a page layout. The flows contain a list of blocks which, in turn, each contain
7644-416: The one hand that recipients aren't affected by the unpredictability resulting from differences among formatting language interpreters, while on the other hand means that the document cannot easily adapt to different recipient needs, such as different page size or preferred font size, or tailoring for on-screen versus on-paper versus audio presentation. The XSL-FO language was designed for paged media; as such,
7742-450: The outside or inside edges of pages. Inside refers to the side of the page towards the book binding, and outside refers to the side of a page away from the book binding. XSL-FO 1.1 refines the functionality for sizing of graphics to fit, with the ability to shrink to fit (but not grow to fit), as well as the ability to define specific scaling steps. In addition, the resulting scaling factor can be referenced for display (for example, to say in
7840-441: The parsed document), but these declarations are still checked for form and validity. An attribute list specifies for a given element type the list of all possible attribute associated with that type. For each possible attribute, it contains: For example: Here are some attribute types supported by both SGML and XML: A default value can define whether an attribute must occur ( #REQUIRED ) or not ( #IMPLIED ), or whether it has
7938-418: The parsers themselves. Instead, these parsers just provide to the application the parsed FPI and/or URI associated to the notations found in the parsed SGML or XML document, and with a facility for a dictionary containing all notation names declared in the DTD; these validating parsers also check the uniqueness of notation name declarations, and report a validation error if some notation names are used anywhere in
8036-408: The previous or next line also is hyphenated. These will change, in some borderline cases quite substantially, the layout of the various pages. There are other cases where the XSL-FO specification explicitly allows FO processors some degree of choice with regard to layout. This differentiation between FO processors, creating inconsistent results between processors is often not a concern. This is because
8134-444: The processor to pass this on to an output format that supports it. XSL-FO 1.1 has features that support the generation of an index that might be found at the back of a book. This is done through referencing of properly marked-up elements in the FO document. The last page can be generated without providing an explicit in-document reference to a specific anchor in the FO document. The definition of "last page" can be restricted to within
8232-485: The product they test, discounts on the release version, or other incentives. Some software is kept in so-called perpetual beta , where new features are continually added to the software without establishing a final "stable" release. As the Internet has facilitated the rapid and inexpensive distribution of software, companies have begun to take a looser approach to the use of the word beta . Developers may release either
8330-548: The product. As software became a significant part of IBM's offerings, the alpha test terminology was used to denote the pre-announcement test and the beta test was used to show product readiness for general availability. Martin Belsky, a manager on some of IBM's earlier software projects claimed to have invented the terminology. IBM dropped the alpha/beta terminology during the 1960s, but by then it had received fairly wide notice. The usage of "beta test" to refer to testing done by customers
8428-460: The production level. It noted that Gmail and Google News , for example, had been in beta for a long time although widely used; Google News left beta in January 2006, followed by Google Apps (now named Google Workspace ), including Gmail, in July 2009. Since the introduction of Windows 8 , Microsoft has called pre-release software a preview rather than beta . All pre-release builds released through
8526-474: The related hardware end user computers or machines. The term does not define the delivery mechanism or volume; it only states that the quality is sufficient for mass distribution. The deliverable from the engineering organization is frequently in the form of a golden master media used for duplication or to produce the image for the web. General availability ( GA ) is the marketing stage at which all necessary commercialization activities have been completed and
8624-459: The software development phase following alpha. A beta phase generally begins when the software is feature-complete but likely to contain several known or unknown bugs. Software in the beta phase will generally have many more bugs in it than completed software and speed or performance issues, and may still cause crashes or data loss. The focus of beta testing is reducing impacts on users, often incorporating usability testing . The process of delivering
8722-654: The software has "gone live". Release to the Web ( RTW ) or Web release is a means of software delivery that utilizes the Internet for distribution. No physical media are produced in this type of release mechanism by the manufacturer. Web releases have become more common as Internet usage grew. During its supported lifetime, the software is sometimes subjected to service releases, patches or service packs , sometimes also called "interim releases" or "maintenance releases" (MR). For example, Microsoft released three major service packs for
8820-399: The software project before formal testing. These activities can include requirements analysis , software design , software development , and unit testing . In typical open source development, there are several types of pre-alpha versions. Milestone versions include specific sets of functions and are released as soon as the feature is complete. The alpha phase of the release life cycle
8918-418: The start of an XML document. The declaration establishes that the document is an instance of the type defined by the referenced DTD. DOCTYPEs make two sorts of declarations: The declarations in the internal subset form part of the DOCTYPE in the document itself. The declarations in the external subset are located in a separate text file. The external subset may be referenced via a public identifier and/or
9016-478: The text within the boundaries described by the FO document. The XSL-FO specification even allows different FO processors to have varying responses with regard to the resultant generated pages. For example, some FO processors can hyphenate words to minimize space when breaking a line, while others choose not to. Different processors may even use different hyphenation algorithms, ranging from very simple to more complex hyphenation algorithms that take into account whether
9114-418: The used system, language, or underlying libraries. Once released, the software is generally known as a "stable release". The formal term often depends on the method of release: physical media, online release, or a web application. The term "release to manufacturing" (RTM), also known as "going gold", is a term used when a software product is ready to be delivered. This build may be digitally signed, allowing
9212-440: The user can specify the first row as a table header row, with its own separate styling information. The FO processor can be told exactly how much space to give each column, or it can be told to auto-fit the text in the table. FO has extensive controls for orienting blocks of text. One can, in the middle of a page, designate a block of text to be oriented in a different orientation. These oriented blocks can be used for languages in
9310-512: The valid building blocks of an XML document. It defines the document structure with a list of validated elements and attributes. A DTD can be declared inline inside an XML document, or as an external reference. A namespace-aware version of DTDs is being developed as Part 9 of ISO DSDL . DTDs persist in applications that need special publishing characters, such as the XML and HTML Character Entity References , which derive from larger sets defined as part of
9408-409: The validation of documents in the standalone mode of these parsers: the validation of all external entities referenced by notations is left to the application using the SGML or XML parser). Non-validating parsers may eventually attempt to locate these external entities in the non -standalone mode (by partially interpreting the DTD only to resolve their declared parsable entities), but do not validate
9506-566: Was not done in IBM. Rather, IBM used the term "field test". Major public betas developed afterward, with early customers having purchased a "pioneer edition" of the WordVision word processor for the IBM PC for $ 49.95. In 1984, Stephen Manes wrote that "in a brilliant marketing coup, Bruce and James Program Publishers managed to get people to pay for the privilege of testing the product." In September 2000,
9604-424: Was originally conceived only for this purpose; it is now in widespread use for more general XML transformations. This transformation step is taken so much for granted in XSL-FO that it is not uncommon for people to call the XSLT that turns XML into XSL-FO the actual XSL-FO document itself. Even tutorials on XSL-FO tend to be written with XSLT commands around the FO processing instructions. The XSLT transformation step
#108891