﻿<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet href="mml-stylesheet.css" type="text/css" media="screen"?> <xs:schema xmlns:xfm="http://www.w3.org/2002/xforms" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:documentation> <summary> <title>Mail Markup Language - Version 1.1</title><paragraph>Mail Markup Language (MML) is a language to structure and describe generic content for human consumption sent over SMTP or a similar other method of transfer. The objective is to provide a vocabulary and structure that is semantic first and accessible second. The language allows for the integration of any other XML vocabulary as a namespace plugin.</paragraph><paragraph>This documentation for Version 1.1 of Mail Markup Language is dated 25 December 2009 by Austin Cheney.</paragraph></summary><legal> <title>Legal Notice</title><paragraph>Distribution, reproduction, and transmission of this document, and the language contained herein, is unlimited WITHOUT owner or author consent.</paragraph><paragraph>Mail Markup Language (MML) is the intellectual property (IP) of Sabre Inc (OWNER). MML contains features that are patent pending as well as additional features that are disclosed and unprotected novelties. Removal or omission of entire features, of specifically the language or its containing standard, may represent a conflict of IP unless approval for such removal is granted from an authorized agent of the OWNER. Version 1.1 of MML claims derivation from MML Version 1.0. Any protection or novelty implied or expressed by MML Version 1.0 must be applied upon Version 1.1 as a derivative work of equal scope, intention, and application as may be defined by the utility protection.</paragraph></legal><key> <title>Visual Color Key (for visual users)</title><key-list> <list-item> <include>include or import</include></list-item><list-item> <element>element</element></list-item><list-item> <child-element>child element</child-element></list-item><list-item> <group>element group</group></list-item><list-item> <child-group>child group</child-group></list-item><list-item> <attribute>attribute</attribute></list-item><list-item> <attributeGroup>attribute group</attributeGroup></list-item><list-item> <complex-Type>reusable complex type</complex-Type></list-item><list-item> <include-name>name of include or import</include-name></list-item><list-item> <element-name>element name</element-name></list-item><list-item> <group-name>element group name</group-name></list-item><list-item> <attribute-name>attribute name</attribute-name></list-item><list-item> <attribute-group>attribute group name</attribute-group></list-item><list-item> <complex-Type-Name>name of reusable complex type</complex-Type-Name></list-item><list-item> <example>element example</example></list-item><list-item> <process>processing requirements or RFC 2119 [34] language</process></list-item><list-item> <parent>element&#39;s parent</parent></list-item></key-list></key><note> <title>Semantic Note</title><paragraph>Some browsers parse character entity references as character literals when processed as XML with a stylesheet. This means reserved syntax characters to XML may be processed in some browsers even after they are properly escaped. In order to ensure a uniform syntax, semantics, and presentation &#34;x&#34; tags are written between the left angle bracket, &lt;<x/>, and a tag&#39;s name in the documentation. For semantic consideration please ignore these &#34;x&#34; tags.</paragraph></note><requirements> <title>Requirements</title><paragraph>The key words <process>MUST</process>, <process>MUST NOT</process>, <process>REQUIRED</process>, <process>SHALL</process>, <process>SHALL NOT</process>, <process>SHOULD</process>, <process>SHOULD NOT</process>, <process>RECOMMENDED</process>, <process>MAY</process>, and <process>OPTIONAL</process> in this document are to be interpreted as described in RFC 2119 [34]. If an implementation, feature, or constraint does not satisfy a requirement level of MUST, MUST NOT, or REQUIRED for its respective statement, clause, phrase, or section that implementation, feature, or constraint MUST be considered failed. <process>Under such a circumstance, known as conditional compliance, a MML document MUST NOT be transmitted.</process> The ideal MML document will satisfy conditional compliance and SHOULD and SHOULD NOT conditions, known as unconditional compliance.</paragraph></requirements><terms> <title>Terminology</title><term-list> <list-item> <name>tag</name> A tag is a code command enclosed in angle brackets such as, &quot;&lt;<x/>strong&gt;&quot;. Every tag exists as pairs of an opening tag and a closing tag. All closing tags are identical to their opening counter-part except that are preceded by a forward slash character, such as &quot;&lt;<x/>/strong&gt;&quot;.</list-item><list-item> <name>element</name> The word &#34;element&#34; is synonymous and used interchangeably with the term &#34;tag&#34;. It <process>SHOULD</process> be noted that the terms tag and element differ in XML Schema literature where &#34;tag&#34; refers to the syntactical delimiters and element name only so as to refer to the meta-data from the element name apart from the data it is describing while the term &#34;element&#34; refers to the opening tag, closing tag, and contents in between so as to represent a described data package.</list-item><list-item> <name>simple block</name> A simple block is a tag that is capable of containing text and/or line-level tags.</list-item><list-item> <name>complex block</name> A complex block is a tag that is capable of containing simple blocks or complex blocks, but is not capable of containing text.</list-item><list-item> <name>line-level tag</name> Line-level tags are only capable of existing in simple blocks. Line-level tags cannot contain other tags.</list-item><list-item> <name>processor</name> The term processor is to refer to any application that processes, interprets, or seeks to process a MML document. The term processor <process>MAY</process> typically refer to email client applications, but is not limited to such. The term &#34;MML processor&#34; is directly synonymous to the term &#34;mail client&#34; used by other related specifications.</list-item><list-item> <name>accessibility</name> Accessibility is the degree of ease from which any human is equally capable of receiving data intended for human consumption from the desired document or request. Accessibility <process>MAY</process> refer to persons with a sensory disability, a motor disability, or software impairment.</list-item><list-item> <name>understandability</name> Understandability is the degree of ability by which a technology can be learned and used by a person who has never seen or used the technology previously. Understandability also refers to the lack of effort necessary for an experienced user to consume and process the technology.</list-item><list-item> <name>Semantics</name> Semantics refers to the degree of description provided by meta- data and syntax rules either statically or through nesting and hierarchal implementation thereof. The objective of semantics is to provide the most expansive description of data intended for human consumption without that description interfering with understandability during reading or writing.</list-item><list-item> <name>structure</name> Structure refers to the effectual organization of data only as a result of well organized meta-data containers into a rigid hierarchy.</list-item><list-item> <name>session</name> In the context of MML the term session only refers to an instance of communication, which is defined by the &lt;<x/>session&gt;&lt;<x/>/session&gt; tags.</list-item><list-item> <name>URI</name> The abbreviation of URI is short for Uniform Resource Identifier. A URI is the address of a resource on a network or networks as defined by RFC 3986, addressed by RFC 3305, and supplemented by RFC 2368.</list-item></term-list></terms><philosophy> <title>Philosophy of Design</title><paragraph>The design philosophies for MML creation are listed in order of most significant to less relevant.</paragraph><philosophy> <title>Structure</title><paragraph>Structure is the primary design consideration influencing MML. It is important that structure be the most important factor in the design of the language as all other design considerations are merely a result of the logic and conventions imposed by a well structured form.</paragraph><paragraph>The primary difference between MML and other markup languages is that proper structure is mandatorily imposed upon a document author. This rigid inflexibility produces several profoundly significant benefits that exist inherently, which would otherwise merely be referred as best use. The cost that comes from such rigidness is the inability to put content absolutely anywhere in a document to circumvent any potential processing flaws of a processing software.</paragraph></philosophy><philosophy> <title>Syntax Simplicity and Understandability</title><paragraph>Syntax in MML MUST be well-formed XML that conforms to the MML schema. Every tag in MML MUST exist as a pair of opening and closing tags. Syntax in MML is simple and always uniform.</paragraph><paragraph>Tag names are English words and not abbreviations or shortcuts. This is critical to understandability. An abbreviation is a symbolic representation of its expanded value. Although it may be faster to write &lt;<x/>p&gt; instead of &lt;<x/>paragraph&gt; we are saving time and physical effort only at the expense of increase mental effort. If we know a &lt;<x/>p&gt; tag represents a paragraph then it becomes of a symbol of the word paragraph, which is a step of mental deduction.</paragraph><paragraph>As humans we are rather so consumed by symbolic use that it seems a trivial effort to back out a single step of symbolic deduction. The savings become significantly more noticeable given the quantity of which meta-data often occurs in large mark up documents. The end result is that it is lesser mentally exhausting to read a document with descriptive and simple meta-data using complete words.</paragraph></philosophy><philosophy> <title>Semantics</title><paragraph>Semantics are necessary for binding data, which is useful only to humans, and processing syntax, which is only useful to language processors. The objectives of semantic processing is for semantic processors to parse human supplied data and make decisions upon data that result in output relative to human decisions.</paragraph><paragraph>MML was designed with consideration for applying semantics in the least specific manner. Tag names were created for understandability and not semantics. Any benefit received to semantics is purely consequential. There are two remedies to this intended lack of elaboration. Every tag in the &lt;<x/>markup&gt; section of MML is granted use of the role attribute. Hierarchal semantics are the primary unintended beneficiary of a rigid structure imposed upon the data. A combined use of the role attribute or the tag names and the hierarchal structure in which they exist is the second remedy for the lack of semantic elaboration.</paragraph><paragraph>Even though conventions in MML were not created to directly benefit semantics the conventions of semantic languages, such as Resource Document Framework, were the primary influencing factor in creating the concepts and rules for imposing structure and tag hierarchy.</paragraph></philosophy><philosophy> <title>Accessibility</title><paragraph>It is an important factor that all persons are equally capable of accessing, using, and understanding documents defined as MML. Accessibility is a lesser important design factor as many concerns of accessibility are addressed by proper use of semantics, understandability, and usability. Usability is primarily a result of interaction of the data, which exceeds the scope of this document.</paragraph></philosophy><philosophy> <title>Presentation</title><paragraph>Presentation is perhaps the least concern of all design factors influencing MML. All presentation will exist in either an external stylesheet(s) or the default presentational conventions supplied by the MML processor.</paragraph><paragraph>This version of MML only recognizes Cascading Style Sheets and Extensible Stylesheet Language as presentation languages. The degree of processing compliance afforded to those languages and which versions are process-able are processor specific concerns, which exceed the scope of this document. MML processors <process>SHOULD</process> make no assumption that there is an implied default presentation that any tag, element, or concept must adhere to.</paragraph></philosophy><philosophy> <title>Security</title><paragraph>While security is always important it is of trivial concern to the describing of data, which is why security is a consideration for the design of MML, but is lowest priority. Much of the effort in assuring MML data remains confidential and maintains integrity rests on the processing of the MML processor, the security of the protocols used to transport the data, and the general security practices of document authors.</paragraph><paragraph>Nonrepudiation is the most important security consideration, except perhaps for encryption, concerning email. The job of nonrepudiation rests most prominently with proper storage practices of documents by users and time/date stamps imposed by email processors on the arrival of mail documents. MML does contribute to nonrepudiation by requiring a timestamp in a manner beyond user control.</paragraph><paragraph>MML does provide a method for specifying implementation of public key distribution to facilitate encryption. Please refer to the public-key attribute for more information.</paragraph><paragraph>MML also implements a description scheme for every attached asset using MIME to identify various types of media. Media can only be executed according to the specified MIME type value. The intent is that a file that looks like a graphic and has the file extension of a a graphic may actually be a malicious executable program, but if it has a specified MIME type of a graphic format it can only open as a graphic or it <process>MUST NOT</process> be processed.</paragraph></philosophy></philosophy><technology> <title>External Technologies</title><paragraph>In order to advance the functionality of this technology it is necessary to incorporate use of prior existing standards.</paragraph><technology> <title>Extensible Markup Language (XML) and W3C XML Schema</title><paragraph>MML is written in W3C XML Schema, which is written XML. As a result MML code is case sensitive. This means all tag names <process>MUST</process> be lower case. XML also requires that all attribute values <process>MUST</process> be quoted, tags <process>MUST</process> be properly nested, and every opening tag <process>MUST</process> have a corresponding closing tag. Failure to adhere to these syntax rules will result in the document not validating, which will cause it to not send.</paragraph></technology><technology> <title>XForms 1.1</title><paragraph>XForms is the only form method specified in MML. <process>Where XForms usage is allowed by the MML schema it MUST be used in accordance with the XForms schema: http://www.w3.org/Markup/Forms/2002/XForms-Schema.xsd.</process> Processors <process>MUST</process> use XForms version 1.1 to be compliant with this version of MML.</paragraph></technology><technology> <title>Accessible Rich Internet Applications</title><paragraph>The standards specification Accessible Rich Internet Applications, WAI-ARIA, is not included into this version of MML due to the specification not being formalized at the time of this writing. WAI-ARIA is intended to be implemented in future versions of MML. For more information please see: http://www.w3c.org/WAI/</paragraph></technology><technology> <title>Resource Document Framework</title><paragraph>Resource Document Framework, RDF, is not an included technology of this specification, however RDF did significantly influence design patterns of MML. RDF implementation <process>MAY</process> occur as a server-side feature, an optional client specific feature, or a MML processor behavior feature. RDF implementation <process>MUST NOT</process> interfere with conventions, syntax, data, or meta-data supplied in the document directly. This is necessary so that a MML document maintains a pre-RDF existence for distribution to other users that may not be capable of processing RDF. For more information please see: http://www.w3c.org/RDF/</paragraph></technology><technology> <title>Stylesheet Technologies</title><paragraph>This version of MML recognizes only Cascading Style Sheets (CSS) and Extensible Stylesheets Language (XSL) as stylesheet languages. MML imposes no requirement to support stylesheets. If a MML processor does attempt to support a particular stylesheet it <process>SHOULD</process> state what version is supported and <process>SHOULD</process> fully support that version according to its specification. For more information on CSS please see: http://www.w3.org/Style/CSS/ For more information on XSL please see: http://www.w3.org/Style/XSL/</paragraph></technology><technology> <title>Behaviors and Scripting</title><paragraph>MML does not support any scripting or behavior technologies. This version of MML does not provide a solution to likely cross-site scripting vulnerabilities, breaches of non-repudiation, or interference to the integrity of the data that may result from the execution of scripting at the user agent software. Standards and technologies that wish to dynamically alter or access a MML document <process>SHOULD</process> do so only using XPath or DOM expressions and <process>MUST NOT</process> violate the document segragation imposed by processing the &lt;<x/>session&gt; element.</paragraph></technology><technology> <title>Public Key Infrastructure</title><paragraph>MML supports the transfer of public keys by directly embedding the hash value of the public key into the document. MML provides no support for specifications regarding encryption, data transport, or confidentiality. These are application specific and protocol features that exceed the scope of this document. Please see the &lt;<x/>public-key&gt; tag for more information on MML implementation. For PKI specifications please see: http://www.rsa.com/rsalabs/pkcs/</paragraph></technology><technology> <title>Uniform Resource Identifier</title><paragraph>Uniform Resource Identifier (URI) is a representation of an address to an external asset. MML requires the use of URIs to specify locations of any object or stylesheet. Aside from text the only data that <process>MAY</process> be included directly into the document are public key hashes. For additional information please refer to RFC 3305.</paragraph></technology><technology> <title>Multipurpose Internet Mail Extensions</title><paragraph>Multipurpose Internet Mail Extensions (MIME) is specification designed to support an expanded character set beyond the basic 7-bit ASCII natively supported by SMTP. For more information on the MIME specification please refer to RFC 2045, RFC 2046, RFC 2047, RFC 4288, RFC 4289, and RFC 2077.</paragraph></technology></technology><processor> <title>Processor Roles</title><paragraph>The role of a processor of MML is to conform to the following specified requirements. Processors of MML are, however, allowed certain freedoms from presumption that are also specified. MML processors are encouraged to test the limits of innovation. Diversity, usability, and customization are necessary results of competition. The intent of subsection Processor Requirements and Constraints is to impose requirements upon MML processors to ensure the integrity of the language. The intent of subsection Processor Allowances is to illustrate some areas where MML processor vendors are free to explore without fear of violating this specification.</paragraph><processor> <title>Processor Requirements and Constraints</title><paragraph>The intent of imposing requirements and constraints unto the processor is to provide a uniform existence for data, meta-data, and syntax rules contained in a MML document not at the burden of a document author.</paragraph><processor> <title>Validation</title><paragraph>It is absolutely essential that a MML document <process>MUST</process> validate against the MML schema prior to transmission. <process>If a MML document does not validate it MUST NOT be transmitted as email across any email specific protocol or Hyper Text Transfer Protocol.</process> A MML processor is not <process>REQUIRED</process> to process any malformed or invalid MML document.</paragraph><paragraph>It is not invalid, according to some schema validators, for a session author to include empty tags, also known as nil content, such as &lt;<x/>style&gt;&lt;<x/>/style&gt;. It is, however, invalid to include nil content elements, in accordance with the XML Schema standard, without explicitly stating the XSI:nil=&#34;true&#34; attribute. Empty tags <process>MUST</process> be removed by the MML processor during validation. Every tag <process>SHOULD</process> contain text, other tags, or both if so allowed.</paragraph></processor><processor> <title>RFC 2822/5322 Conformance</title><paragraph> <process>A MML processor MUST create RFC 5322 conformant mail headers for backwards compatibility. MML aware clients/servers MUST remove this header data and instead rely only upon the header information specified within the MML code.</process> This is necessary to ensure seamless transactions across the SMTP protocol to clients not prepared to receive MML. This header data <process>MUST</process> be created after document validation for transport and prior to the document being transported.</paragraph></processor><processor> <title>Session Separation and Presentation</title><paragraph> <process>MML processors MUST process each session of a MML document separately.</process> This means a stylesheet specified in one particular session <process>MUST NOT</process> be processed in another session on the same document. For instance a background specified, via stylesheet, in one session cannot exist as a background in any other session unless so specified in each other session even if in the same document.</paragraph><paragraph>A MML processor <process>SHOULD</process> allow session authors to alter the presentation of all elements and content in a session even if those elements or content exist outside the message body. This is not a requirement because MML processors <process>MAY</process> choose to display the session header information only in their application shell opposed to text.</paragraph></processor><processor> <title>Session Preservation</title><paragraph> <process>All prior sessions received in a MML document MUST be preserved verbatim, including whitespace and presentation.</process> Decisions upon prior sessions <process>MUST NOT</process> be allowed except whether external assets <process>MAY</process> be processed. A MML processor <process>SHOULD</process> take steps to prevent prior sessions from manual alteration by a session author.</paragraph></processor><processor> <title>Character Set</title><paragraph> <process>The character set for this version of MML MUST be UTF-16BE.</process></paragraph></processor><processor> <title>Session Time-stamp</title><paragraph> <process>The value of the time-stamp attribute MUST be written by the MML processor between the moment the session author submits the document for transmission and the validation by the MML processor. The MML processor MUST write over any value supplied by the author with the correct value.</process> The value <process>MUST</process> be based upon the local system clock.</paragraph></processor><processor> <title>URI Resolution</title><paragraph> <process>MML processors MUST set a standard timeout for any URI that is referenced in a MML document.</process> The length of that timeout <process>MAY</process> be determined by the MML processor. User adjustment to the timeout length setting of the MML processor is <process>OPTIONAL</process>. <process>If a MML processor cannot resolve any resource at its specified URI timeout that resource MUST fail.</process></paragraph></processor><processor> <title>MIME Execution Restriction</title><paragraph> <process>Every object, stylesheet, or other external resource MUST be processed strictly according to its specified MIME type. If a resource does not match its associated MIME type it MUST NOT be executed.</process> Processing of any external resource to a MML document by a MML processor is <process>OPTIONAL</process>.</paragraph></processor><processor> <title>Caching</title><paragraph> <process>External assets, such as stylesheets or objects, MUST be cacheable by the MML processor.</process> Caching significantly improves performance by reducing the demand for bandwidth and allowing access to content even when offline. Options, configuration, and implementation <process>MUST</process> exist entirely at the discretion of the MML processor.</paragraph></processor><processor> <title>Local Processing</title><paragraph> <process>MML processors MUST locally contain all required code components necessary to process and validate a MML document according to the MML schema.</process> These components can be obtained from the following list:</paragraph><list> <list-item>http://mailmarkup.org/mail.xsd</list-item><list-item>http://www.w3.org/MarkUp/Forms/2002/XForms-Schema.xsd</list-item><list-item>http://www.w3.org/MarkUp/SCHEMA/xml-events-attribs-1.xsd</list-item><list-item>http://www.w3.org/2001/XMLSchema.xsd</list-item><list-item>http://www.w3.org/2001/03/xml.xsd</list-item><list-item>http://www.w3.org/2001/XMLSchema.dtd</list-item><list-item>http://www.w3.org/2001/datatypes.dtd</list-item><list-item>http://mailmarkup.org/mime.xsd</list-item></list><paragraph> <process>MML processors MUST NOT require the use of a network or internet connection to process or validate a MML document.</process></paragraph></processor><processor> <title>MIME Catalogue</title><paragraph> <process>A MML processor&#39;s list of acceptable MIME types MUST exist as a local schema file. This file MUST be available for editing by either an administrator or common user.</process> Adding new MIME types to the list will likely result in a failure to process outside an internal network. <process>Removing MIME types from the list MUST result in a failure to process media of those types.</process> By default the values in the MIME catalogue file will be every IANA registered type.</paragraph></processor><processor> <title>From and Reply-to Tags</title><paragraph>The &lt;<x/>from&gt; and &lt;<x/>reply-to&gt; tags are <process>REQUIRED</process> tags, so the tags will exist even if their content is null. <process>If their content is null the MML processor MUST supply default values of the session author&#39;s email address. This MML processor supplied default content MUST be supplied by the MML processor between the moment the session author submits the document for transmission and the REQUIRED validation by the MML processor.</process> The default value for the &lt;<x/>from&gt; tag <process>MUST</process> be the address represented by the author. <process>The default value for the &lt;<x/>reply-to&gt; tag MUST match the default value of the &lt;<x/>from&gt; tag.</process></paragraph><paragraph>Session authors are allowed to specify content for these elements to hide their email address. The benefit is to customize how other session authors can control direct traffic, such as reply and forward traffic, back to their email address. It is important to understand the actual traffic benefit of these fields as they offer absolutely no security advantage. <process>MML processors MUST NOT use, process, or regulate the &lt;<x/>from&gt; or &lt;<x/>reply-to&gt; tags for any intent related to security.</process> Email transmission protocols operate in unencrypted plain-text by default, which is where any user can easily find any address or identity information.</paragraph></processor><processor> <title>Attachments</title><paragraph> <process>Attachments to the current session MUST be sent with the actual MML document.</process> Attachment persistence is <process>OPTIONAL</process> to the MML processor vendor. Attachment persistence refers to whether or not attachments will continue to be sent with the MML document after the document session arrives at its originally intended destination(s). A MML processor <process>SHOULD</process> allow users to choose to allow persistence.</paragraph><paragraph> <process>Attachments MUST be processed only according to their specified type.</process> Processing of attachments by the MML processor is <process>OPTIONAL</process>. <process>The type specified for &lt;<x/>collection-type&gt; MUST represent every file in that respective &lt;<x/>collection&gt;. If the &lt;<x/>collection-type&gt; tag is not present the files located in the collection MUST NOT be executable from the MML processor, MML document, or any other mail service software.</process></paragraph></processor><processor> <title>Processing of &lt;<x/>plain-text&gt;</title><paragraph> <process>Content provided in &lt;<x/>plain-text&gt; MUST be processed as plain text characters and/or whitespace only. Code MUST NOT be processed, rendered, or transformed in this tag. XML reserved syntax characters MUST be properly escaped automatically by the MML processor or validation SHOULD expect to fail.</process></paragraph></processor><processor> <title>Processing of style Attribute</title><paragraph>The value supplied by the style attribute is defined in the MML schema as lowercase alpha characters, uppercase alpha characters, and/or numbers plus a colon character (:) plus lowercase alpha characters, uppercase alpha characters, and/or numbers. <process>The characters supplied prior to the colon MUST represent the value supplied in a &lt;<x/>stylesheet-namespace&gt; element of the same session.</process> The value supplied after the colon <process>SHOULD</process> represent a reusable processing declaration defined inside the stylesheet, such as a CSS class. An example of a supplied value: &#34;namespaceName:CSSclass09&#34;.</paragraph><paragraph>Stylesheet processing is <process>OPTIONAL</process>. <process>If the noted stylesheet cannot be resolved or if the value supplied by the style attribute is either malformed or fails to match a stylesheet of the same session this attribute MUST NOT be processed.</process></paragraph></processor><processor> <title>Internationalization Attribute Processing</title><paragraph>Text <process>MUST</process> be processed in accordance with the defined values for the four internationalization attributes. For processing descriptions please refer to these features:</paragraph><list> <list-item>direction Attribute</list-item><list-item>orientation Attribute</list-item><list-item>wrap Attribute</list-item><list-item>section-language Attribute</list-item></list><paragraph> <process>Failure to process internationalization attributes according to their definition MUST result in conditional compliance failure.</process></paragraph></processor><processor> <title>xmlns Attribute</title><paragraph>The xmlns attribute is not defined in this specification. It is defined in the specification for Namespaces in XML 1.0. It is considered an included technology by virtue of the xml.xsd schema that is imported into the XMLSchema.xsd schema that is imported into the mail.xsd that defines MML. <process>Use of the xmlns attribute MUST be allowed on the &lt;<x/>session&gt; element and any element contained by the &lt;<x/>session&gt; element in accordance with XML processing guidance defined by XML and Namespace standards.</process></paragraph></processor><processor> <title>refer Attribute Processing</title><paragraph> <process>The refer attribute MUST NOT be allowed to reference id values outside the specific &lt;<x/>markup&gt; element containing the refer attribute.</process></paragraph></processor><processor> <title>MIME Type Usage and mime.xsd</title><paragraph>MIME types <process>MUST</process> be stored in the mime.xsd document, which is merely a catalogue of all IANA registered MIME types at the time of this writing. The information stored in mime.xsd is used in the MML schema through the use of the &#34;mime-type&#34; schema complex type.</paragraph><paragraph>Elements based upon the &#34;mime-type&#34; element type are allowed only one of nine possible child elements. These child elements each represent a IANA registered content type. The values for those child elements <process>MUST</process> be a MIME sub-type that exists in the local mime.xsd file. The child elements are:</paragraph><list> <list-item>&lt;<x/>application&gt;</list-item><list-item>&lt;<x/>audio&gt;</list-item><list-item>&lt;<x/>example&gt;</list-item><list-item>&lt;<x/>image&gt;</list-item><list-item>&lt;<x/>message&gt;</list-item><list-item>&lt;<x/>model&gt;</list-item><list-item>&lt;<x/>multipart&gt;</list-item><list-item>&lt;<x/>text&gt;</list-item><list-item>&lt;<x/>video&gt;</list-item></list></processor></processor><processor> <title>Processor Allowances</title><paragraph>This document does not exist to define the role of MML processors for features that exceed the scope of this document. This section only serves to dispel assumptions and specify certain freedoms allowed to MML processors, which are not be allowed to processors of other markup languages.</paragraph><processor> <title>Default Presentation</title><paragraph>This specification does not make any statements regarding presentation of the language. This means a MML processor is free to determine the default presentation for tags and objects. This default presentation <process>MAY</process> apply to any or all parts of a MML document. This means that presentation provided from a MML processor fits a wider scope than presentation specified by a MML author since any MML author can only specify presentation by use of an external stylesheet and stylesheet processing is limited to its session of the document.</paragraph><paragraph>MML processor default presentation <process>MUST</process> be lower priority than presentation defined in a stylesheet. <process>If a conflict in presentation arises between the default and a stylesheet the presentation specified by the stylesheet MUST dominate even in regards to cascading.</process> This means a MML processor determines font size, color, font, and so on until so specified by a stylesheet. A MML processor determines, by default, whether complex and simple blocks impose a line break, wrap, float, or so on.</paragraph><paragraph> <process>A MML processor SHOULD allow a user to customize or alter its default presentation.</process> This specification will not mandate customization, however, accessibility concerns <process>SHOULD</process> be considered for changing text size, turning off stylesheets, and replacing objects with their respective text content.</paragraph></processor><processor> <title>Default Behaviors</title><paragraph>This specification states no directive for behaviors or controls upon the data or the usability thereof. There is no convention for allowing client-side scripting in MML and any scripting that does exist MUST be processed as plain text content. MML processors <process>SHOULD</process> allow behaviors that increase accessibility more importantly than usability.</paragraph><paragraph>Section Resource Document Framework states that RDF is not an included technology in this specification and <process>MUST NOT</process> interfere with conventions, syntax, data, or meta-data supplied in the document directly. What it does not say is that semantic technologies <process>MAY</process> be used to auto-fill many areas of MML based upon a user&#39;s data habits. Semantic technologies <process>MAY</process> also be used for searching, data sorting, or other processing features to the data defined by the MML document. Those semantic technologies <process>MUST NOT</process>, however, alter the contents of the MML document.</paragraph></processor><processor> <title>Processing Elaborations Over Native MML Definitions</title><paragraph> <process>MML processors MUST be capable of processing the full MML specification.</process> MML processors <process>MAY</process> allow processing of or definition of elements or conventions not defined by this MML specification. Such elaborations <process>MUST NOT</process> interfere, limit, constrain, remove, or disable any aspect of the MML specification. Any elaboration, element, or convention not defined by this MML specification is <process>OPTIONAL</process> of MML processors.</paragraph></processor></processor></processor><protocol> <title>Protocol Compatibility</title><paragraph>It is important to determine if there is any interference to existing communication protocols imposed by the formal structuring of data. This section intends to determine if there are any incompatibilities with existing protocol standards and not whether existing services fail. It is anticipated there will likely be natural incompatibilities with existing technology that <process>MAY</process> perform sophisticated processing and relay of data across a network without expectation to uniformity to the definitions imposed upon that data.</paragraph><paragraph>Application oriented concerns not defined by this specification, especially vender-specific concerns, exceed the scope of this specification. If the standard imposed by this specification is not incompatible with existing standards it will be necessary for software vendors to modify their applications to ensure support of this technology without service interference.</paragraph><paragraph>This section will explore considerations for the gathering of data from a MML document necessary to conduct transportation of the document. This section is subdivided by mail distribution protocol.</paragraph><protocol> <title>Simple Mail Transfer Protocol (SMTP)</title><paragraph>SMTP [RFC5321] is the backbone protocol of email distribution. This protocol is responsible for sending all email and often for receiving mail. <process>In order to be compatible to the requirements of RFC 5321 (SMTP) RFC 5322 (Format) MUST be obsolete by this document.</process> This specification seeks to replace RFC 5322 as the standard method for describing data in email.</paragraph><paragraph>RFC 5321 sets specific methods and requirements for the use of header fields from a mail document for use in defining transport and response necessary information. There is no guidance specified for precise movement of header information from a document to protocol use under any particular circumstances. <process>The result is that MML processors MUST extract header information from the concerned header tags in a way that it deems most efficient and convenient to its logic so long as transport can be achieved in accordance with RFC 5321 and without harm to the document.</process> Please see section 3. The SMTP Procedures: An Overview and Appendix B. Generating SMTP Commands from RFC 822 Headers from RFC 5321 for specific details.</paragraph></protocol><protocol> <title>Post Office Protocol - Version 3 (POP3)</title><paragraph>POP3 [RFC1939] is incompatible with this specification due its section 11. Message Format. RFC 5322 is obsoleted by this document. POP3 is therefore incompatible by direct result of the following statement:</paragraph><paragraph>"All messages transmitted during a POP3 session are assumed to conform to the standard for the format of Internet text messages [RFC822]." - It is important to note that RFC 822 is obsoleted by RFC 5322.</paragraph><paragraph>The result is that RFC 1939 <process>MUST</process> be obsolete. If POP is to remain a standard it <process>MUST</process> be revised to either expect header information in MML specific format or be format non-specific.</paragraph></protocol><protocol> <title>Internet Message Access Protocol - Version 4rev1 (IMAP)</title><paragraph>IMAP [RFC3501] is inherently dependant on formatting specified by RFC 5322, and so it <process>MUST</process> be rendered obsolete as a result.</paragraph></protocol><protocol> <title>Requirements for Web Mail</title><paragraph>At this time of this writing Web Mail is inherently dependant upon POP3 and/or IMAP protocols. Since these protocols are rendered obsolete by this specification it can be assumed that MML is incompatible with web mail as it exists during the time of this writing.</paragraph><paragraph>In order for MML to be compatible with web mail the following conditions, beyond protocol compatibility, <process>MUST</process> be enforced:</paragraph><term-list> <list-item>he containing document, such as a page of Extensible Hypertext Markup Language ((X)HTML), <process>MUST</process> be served, processed, and rendered as a subset of XML.</list-item><list-item>The MML processor specific requirements specified in section 4. Processor Roles are <process>REQUIRED</process>.</list-item><list-item> <process>Components of the containing document, such as a page of (X)HTML, MUST NOT mix or interfere with the MML code.</process> MML, and its subsets; if any, <process>MUST</process> exist as a preserved code island.</list-item><list-item>MML <process>MUST</process> be sent without interference or supplication to its code or structure from its containing document, as a page of (X)HTML.</list-item><list-item>Scripting that exists or is allowed by a containing document, such as a page of (X)HTML, <process>MUST NOT</process> be allowed to execute against the code, content, or structure imposed by the MML code island.</list-item><list-item> <process>MML presentation requirements MUST be enforced.</process> Presentation from the containing document, such as a page of (X)HTML, <process>MUST NOT</process> act upon or interfere with presentation imposed by MML referenced stylesheets. The containing page <process>MAY</process> establish lowest priority default presentation exactly as a MML processor <process>MAY</process> do so.</list-item><list-item> <process>The containing document MUST be served only to the authorized user through an encrypted transmission.</process></list-item><list-item>An XML compliant web browser <process>SHOULD</process> be capable of processing, presenting, and transmitting a MML document without any need for a containing document or any use of HTML or reformulation thereof.</list-item></term-list></protocol></protocol></xs:documentation></xs:annotation><xs:import schemaLocation="http://www.w3.org/MarkUp/Forms/2002/XForms-Schema.xsd" namespace="http://www.w3.org/2002/xforms"> <xs:annotation> <xs:documentation> <name>XForms-Schema.xsd</name> The schema for XForms is a schema import from http://www.w3.org/MarkUp/Forms/2002/XForms-Schema.xsd with a declared namespace of http://www.w3.org/2002/xforms. By default this file <process>SHOULD</process> be imported from a local relative path at the user agent software default. </xs:documentation></xs:annotation></xs:import><xs:include schemaLocation="http://mailmarkup.org/mime.xsd"> <xs:annotation> <xs:documentation> <name>mime.xsd</name> The mime schema catalogue is a schema include from http://mailmarkup.org/mime.xsd but <process>SHOULD</process> be included from a local relative path at the user agent software default. </xs:documentation></xs:annotation></xs:include><xs:element name="mail"> <xs:annotation> <xs:documentation> <name>mail</name><paragraph>The root element of MML is the tag &lt;<x/>mail&gt;. The root tag is only capable of containing &lt;<x/>session&gt; elements.</paragraph><example>&lt;<x/>mail mail-type=&#34;application/mail+xml&#34; version=&#34;1.1&#34;&gt;&#8596;&lt;<x/>/mail&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="session"> <xs:annotation> <xs:documentation>session (may occur more than once)</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attribute ref="mail-type" use="required"> <xs:annotation> <xs:documentation>mail-type (required)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="version" use="required"> <xs:annotation> <xs:documentation>version (required)</xs:documentation></xs:annotation></xs:attribute><attribute> <documentation>xmlns:xfm (required) - an external requirement not provided by the syntax of the schema</documentation></attribute><attribute> <documentation>xmlns:xs (required) - an external requirement not provided by the syntax of the schema</documentation></attribute></xs:complexType></xs:element><xs:attribute fixed="application/mail+xml" name="mail-type"> <xs:annotation> <xs:documentation> <name>mail-type</name><paragraph>Attribute mail-type is <process>REQUIRED</process> with a fixed value of &#34;application/mail+xml&#34;. This attribute defines the media processing specification for a Mail Markup Language document as a MIME type.</paragraph><example>mail-type=&#34;application/mail+xml&#34;</example></xs:documentation></xs:annotation></xs:attribute><xs:attribute fixed="1.1" name="version"> <xs:annotation> <xs:documentation> <name>version</name><paragraph>Attribute version is <process>REQUIRED</process> with a fixed value of &#34;1.1&#34;. This attribute defines the revision of the Mail Markup Language specification.</paragraph><example>version=&#34;1.1&#34;</example></xs:documentation></xs:annotation></xs:attribute><xs:element name="session"> <xs:annotation> <xs:documentation> <name>session</name><paragraph>Element session is the only child of root element <parent>&lt;<x/>mail&gt;</parent>. The session tag contains all information to represent an instance of communication including markup and header information.</paragraph><paragraph>The session tag allows three methods of communicating the message body. The source method allows a session author to send an external resource as the message body. The plain-text method allows a session author to communicate using only text characters and whitespace. The markup method allows a section author to use MML markup to describe the data.</paragraph><example>&lt;<x/>session time-stamp=&#34;2009-12-25T13:29:59.17+4:30&#34; language=&#34;en&#34;&gt;&#8596;&lt;<x/>/session&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element ref="address"> <xs:annotation> <xs:documentation>address (required)</xs:documentation></xs:annotation></xs:element><xs:element minOccurs="0" ref="attachments"> <xs:annotation> <xs:documentation>attachments (optional)</xs:documentation></xs:annotation></xs:element><xs:element ref="subject"> <xs:annotation> <xs:documentation>subject (required)</xs:documentation></xs:annotation></xs:element><xs:element minOccurs="0" ref="presentation"> <xs:documentation> <xs:annotation>presentation (optional)</xs:annotation></xs:documentation></xs:element><xs:choice> <xs:element ref="source"> <xs:annotation> <xs:documentation>source (required choice between source, plain-text, and markup)</xs:documentation></xs:annotation></xs:element><xs:element ref="plain-text"> <xs:annotation> <xs:documentation>plain-text (required choice between source, plain-text, and markup)</xs:documentation></xs:annotation></xs:element><xs:element ref="markup"> <xs:annotation> <xs:documentation>markup (required choice between source, plain-text, and markup)</xs:documentation></xs:annotation></xs:element></xs:choice></xs:sequence><xs:attribute ref="time-stamp" use="required"> <xs:annotation> <xs:documentation>time-stamp (required)</xs:documentation></xs:annotation></xs:attribute><xs:attribute default="en" ref="language" use="optional"> <xs:annotation> <xs:documentation>language (optional, default value is &#34;en&#34;)</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element><xs:attribute name="time-stamp"> <xs:annotation> <xs:documentation> <name>time-stamp</name><paragraph> <process>Attribute time-stamp and its value MUST be written by the MML processor between the moment the session author submits the document for transmission and the validation by the MML processor. The MML processor MUST write over any value supplied by the author with the correct value.</process> The value <process>MUST</process> be based upon the local system clock.</paragraph><example>time-stamp=&#34;2009-12-25T16:47:32.52+4:30&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:dateTime"/> </xs:simpleType></xs:attribute><xs:attribute name="language"> <xs:annotation> <xs:documentation> <name>language</name><paragraph>Attribute language is an <process>OPTIONAL</process> attribute that allows a session author to describe the majority language of the session using values appropriate to the XML Schema language data type. The default value is &#34;en&#34; if none is specified. Mail client software <process>SHOULD</process> allow a user to specify a default value for the language attribute.</paragraph><example>language=&#34;en&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:language"/> </xs:simpleType></xs:attribute><xs:element name="address"> <xs:annotation> <xs:documentation> <name>address</name><paragraph>Element address is a <process>REQUIRED</process> child of <parent>&lt;<x/>session&gt;</parent>. This is a high level tag designed to store child tags containing email address information.</paragraph><paragraph>Child elements &lt;<x/>to&gt;, &lt;<x/>copy&gt;, &lt;<x/>blind-copy&gt;, and &lt;<x/>from&gt; are formed of complex type &#34;agent&#34;.</paragraph><example>&lt;<x/>address&gt;&#8596;&lt;<x/>/address&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="to" type="agent"> <xs:annotation> <xs:documentation>to (required and may occur more than once)</xs:documentation></xs:annotation></xs:element><xs:element minOccurs="0" maxOccurs="unbounded" name="copy" type="agent"> <xs:annotation> <xs:documentation>copy (optional and may occur more than once)</xs:documentation></xs:annotation></xs:element><xs:element minOccurs="0" maxOccurs="unbounded" name="blind-copy" type="agent"> <xs:annotation> <xs:documentation>blind-copy (optional and may occur more than once)</xs:documentation></xs:annotation></xs:element><xs:element name="from" type="agent"> <xs:annotation> <xs:documentation>from (required)</xs:documentation></xs:annotation></xs:element><xs:element ref="reply-to"> <xs:annotation> <xs:documentation>reply-to (required)</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="reply-to"> <xs:annotation> <xs:documentation> <name>reply-to</name><paragraph>Element reply-to is a <process>REQUIRED</process> child of <parent>&lt;<x/>address&gt;</parent>. It is identical to the &lt;<x/>from&gt; tag except that it may contain either a valid email address or a value of no-reply. This tag is used to set an address for deflecting email replys from the address used to send the email or to establish an alternate destination for receiving replies.</paragraph><example>&lt;<x/>reply-to&gt;no-reply&lt;<x/>/reply-to&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:simpleContent> <xs:extension base="reply-type"> <xs:attribute ref="alias" use="optional"> <xs:annotation> <xs:documentation>alias (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="public-key" use="optional"> <xs:annotation> <xs:documentation>public-key (optional)</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:simpleType name="reply-type"> <xs:restriction base="xs:anyURI"> <xs:pattern value="\c+(\.\c)*@\c+(\.\c)*(\.[a-z]{2,3})|([a-z]{2}\.[a-z]{2})"/> <xs:pattern value="no-reply"/> </xs:restriction></xs:simpleType><xs:complexType name="agent"> <xs:annotation> <xs:documentation> <name>agent</name><paragraph>Complex type agent represents the construct of elements &lt;<x/>to&gt;, &lt;<x/>copy&gt;, &lt;<x/>blind-copy&gt;, and &lt;<x/>from&gt;. These elements store only the value of a properly formed email address. They may contain the optional attributes of alias and public-key.</paragraph></xs:documentation></xs:annotation><xs:simpleContent> <xs:extension base="email"> <xs:attribute ref="alias" use="optional"> <xs:annotation> <xs:documentation>alias (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="public-key" use="optional"> <xs:annotation> <xs:documentation>public-key (optional)</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType><xs:simpleType name="email"> <xs:restriction base="xs:anyURI"> <xs:pattern value="\w+(\.\w)*@\w+(\.\w)*(\.[\w]{2,3})|([\w]{2}\.[\w]{2})"/> </xs:restriction></xs:simpleType><xs:attribute name="alias"> <xs:annotation> <xs:documentation> <name>alias</name><paragraph>Attribute alias is an <process>OPTIONAL</process> member of complex group <parent>agent</parent> and an <process>OPTIONAL</process> child of element <parent>&lt;<x/>reply-to&gt;</parent>. The alias is intended to contain a value more human readable representation of an email address, such as a person&#39;s name.</paragraph><example>alias=&#34;Online Travel Agency Customer Service&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:token"/> </xs:simpleType></xs:attribute><xs:attribute name="public-key"> <xs:annotation> <xs:documentation> <name>public-key</name><paragraph>Attribute public-key is an <process>OPTIONAL</process> member of complex group <parent>agent</parent> and an <process>OPTIONAL</process> child of element <parent>&lt;<x/>reply-to&gt;</parent>. The public-key attribute is intended to store text characters that represent a hash function name and a hashed public-key for asymmetric encryption. <process>These two values MUST be separated by a colon only with the hashed key value after the colon.</process> The hash function name <process>MUST</process> be uppercase alpha or numbers only.</paragraph><example>public-key=&#34;SHA256:5DBDDF911F9E565299428E948A92EA5D1943C4099DB883CC4491CB32CC757DE8&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:Name"> <xs:pattern value="[A-Z0-9]+\:\w+"/> </xs:restriction></xs:simpleType></xs:attribute><xs:element name="attachments"> <xs:annotation> <xs:documentation> <name>attachments</name><paragraph>Element attachments is an <process>OPTIONAL</process> child of <parent>&lt;<x/>session&gt;</parent>. This element is a high level tag for specifying file(s) for transfer with the document. Attached files are not intended for processing in the message body.</paragraph><example>&lt;<x/>attachments&gt;&#8596;&lt;<x/>/attachments&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="collection"> <xs:annotation> <xs:documentation>collection (required choice of either collection or file)</xs:documentation></xs:annotation></xs:element><xs:element ref="file"> <xs:annotation> <xs:documentation>file (required choice of either collection or file)</xs:documentation></xs:annotation></xs:element></xs:choice></xs:complexType></xs:element><xs:element name="collection"> <xs:annotation> <xs:documentation> <name>collection</name><paragraph>Element collection is a <process>REQUIRED</process> choice between it and element &lt;<x/>file&gt; of <parent>&lt;<x/>attachments&gt;</parent>. This is intended to serve as a collection of multiple files of the same specified type.</paragraph><example>&lt;<x/>collection&gt;&#8596;&lt;<x/>/collection&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element ref="collection-name"> <xs:annotation> <xs:documentation>collection-name (required)</xs:documentation></xs:annotation></xs:element><xs:element maxOccurs="unbounded" ref="collection-file"> <xs:annotation> <xs:documentation>collection-file (required and may occur more than once)</xs:documentation></xs:annotation></xs:element><xs:element minOccurs="0" ref="collection-type"> <xs:annotation> <xs:documentation>collection-type (required)</xs:documentation></xs:annotation></xs:element><xs:element ref="collection-description"> <xs:annotation> <xs:documentation>collection-description (required)</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="collection-name"> <xs:annotation> <xs:documentation> <name>collection-name</name><paragraph>Element collection-name is a <process>REQUIRED</process> child of <parent>&lt;<x/>collection&gt;</parent>. This element may contain a token string value. The intent of this tag is to provide a simple name or label for the attached collection.</paragraph><example>&lt;<x/>collection-name&gt;SpinBaldak_26Dec2009&lt;<x/>/collection-name&gt;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:token"> <xs:minLength value="2"/> </xs:restriction></xs:simpleType></xs:element><xs:element name="collection-file"> <xs:annotation> <xs:documentation> <name>collection-file</name><paragraph>Element collection-file is a <process>REQUIRED</process> child of <parent>&lt;<x/>collection&gt;</parent>. This element stores the file name of a particular file in a collection. This tag <process>MUST</process> exist for each file that is to exist in the collection. Only non-colonized name values are accepted with a period separated file extension.</paragraph><example>&lt;<x/>collection-file&gt;ChamanAtNight.jpg&lt;<x/>/collection-file&gt;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:NCName"> <xs:pattern value="\c+(\.\c+)+"/> </xs:restriction></xs:simpleType></xs:element><xs:element name="collection-type" type="mime-type"> <xs:annotation> <xs:documentation> <name>collection-type</name><paragraph>Element collection-type is an <process>OPTIONAL</process> child of <parent>&lt;<x/>collection&gt;</parent>. This element is formed of complex type mime-type, which is defined in the mime.xsd schema. If this tag is not present the files present in the collection <process>MUST NOT</process> be processed by the MML processor.</paragraph><example>&lt;<x/>collection-type&gt;&lt;<x/>image&gt;jpeg&lt;<x/>/image&gt;&lt;<x/>/collection-type&gt;</example></xs:documentation></xs:annotation></xs:element><xs:element name="collection-description"> <xs:annotation> <xs:documentation> <name>collection-description</name><paragraph>Element collection-description is a <process>REQUIRED</process> child of <parent>&lt;<x/>collection&gt;</parent>. This element exists to specify a text description of the collection. The content for this tag <process>MAY</process> represent examples of intended use, explanations, file ownership, origin information, and so forth.</paragraph><example>&lt;<x/>collection-description&gt;This photo collection represents my visit to Spin Baldak.&lt;<x/>/collection-description&gt;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:normalizedString"> <xs:minLength value="3"/> </xs:restriction></xs:simpleType></xs:element><xs:element name="file"> <xs:annotation> <xs:documentation> <name>file</name><paragraph>Element file is a <process>REQUIRED</process> choice between it and element &lt;<x/>collection&gt; of <parent>&lt;<x/>attachements&gt;</parent>. This element is intended to serve as a single attached file.</paragraph><example>&lt;<x/>file&gt;&#8596;&lt;<x/>/file&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element ref="file-name"> <xs:annotation> <xs:documentation>file-name (required)</xs:documentation></xs:annotation></xs:element><xs:element ref="file-type"> <xs:annotation> <xs:documentation>file-type (required)</xs:documentation></xs:annotation></xs:element><xs:element ref="file-description"> <xs:annotation> <xs:documentation>file-description (required)</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="file-name"> <xs:annotation> <xs:documentation> <name>file-name</name><paragraph>Element file-name is a <process>REQUIRED</process> child of <parent>&lt;<x/>file&gt;</parent>. The value for this tag <process>MUST</process> be a non-colonized name with a period separated file extension. This tag represents the name of the file being attached.</paragraph><example>&lt;<x/>file-name&gt;FOB_SpinBaldak_library.psd&lt;<x/>/file-name&gt;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:NCName"> <xs:pattern value="\c+(\.\c+)+"/> </xs:restriction></xs:simpleType></xs:element><xs:element name="file-type" type="mime-type"> <xs:annotation> <xs:documentation> <name>file-type</name><paragraph>Element file-type is a <process>REQUIRED</process> child of <parent>&lt;<x/>file&gt;</parent>. This element is of type mime-type, which is defined in the mime.xsd schema. <process>The attached file MUST be processed according to the value supplied in this tag, or it MUST NOT be processed by a MML processor.</process> Processing of attached files by MML processors is <process>OPTIONAL</process>.</paragraph><example>&lt;<x/>file-type&gt;&lt;<x/>image&gt;vnd.adobe.photoshop&lt;<x/>/image&gt;&lt;/file-type&gt;</example></xs:documentation></xs:annotation></xs:element><xs:element name="file-description"> <xs:annotation> <xs:documentation> <name>file-description</name><paragraph>Element file-description is a <process>REQUIRED</process> child of <parent>&lt;<x/>file&gt;</parent>. This tag allows a session author to enter any normalized string value that describes the attached file.</paragraph><example>&lt;<x/>file-description&gt;A digital painting in Photoshop PSD format illustrating my brief experience in the library at FOB Spin Baldak.&lt;<x/>/file-description&gt;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:normalizedString"/> </xs:simpleType></xs:element><xs:element name="subject"> <xs:annotation> <xs:documentation> <name>subject</name><paragraph>Element subject is a <process>REQUIRED</process> child of <parent>&lt;<x/>session&gt;</parent>. This tag stores a normalized string value that represents the email&#39;s subject line.</paragraph><example>&lt;<x/>subject&gt;A tour of Afghanistan outside Spin Baldak and Qalat.&lt;<x/>/subject&gt;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:normalizedString"> <xs:minLength value="2"/> </xs:restriction></xs:simpleType></xs:element><xs:element name="presentation"> <xs:annotation> <xs:documentation> <name>presentation</name><paragraph>Element presentation is an <process>OPTIONAL</process> child of <parent>&lt;<x/>session&gt;</parent> All presentation not supplied by default from the MML processor software is referenced from this element&#39;s child elements.</paragraph><example>&lt;<x/>presentation&gt;&#8596;&lt;<x/>/presentation&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence maxOccurs="unbounded"> <xs:element ref="stylesheet"> <xs:annotation> <xs:documentation>stylesheet (required and may occur more than once)</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="stylesheet"> <xs:annotation> <xs:documentation> <name>stylesheet</name><paragraph>Element stylesheet is a <process>REQUIRED</process> child of <parent>&lt;<x/>presentation&gt;</parent>. <process>This tag MUST have a URI of valid syntax as its value.</process></paragraph><example>&lt;<x/>stylesheet style-namespace=&#34;KAF&#34; style-type=&#34;text/css&#34; media=&#34;print&#34;&gt;http://mailmarkup.org/example_stylesheet.css&lt;<x/>/stylesheet&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:simpleContent> <xs:extension base="xs:anyURI"> <xs:attribute ref="style-namespace" use="required"> <xs:annotation> <xs:documentation>style-namespace (required)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="style-type" use="required"> <xs:annotation> <xs:documentation>style-type (required)</xs:documentation></xs:annotation></xs:attribute><xs:attribute default="screen" ref="media" use="optional"> <xs:annotation> <xs:documentation>media (optional)</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:attribute name="style-type"> <xs:annotation> <xs:documentation> <name>style-type</name><paragraph>Attribute style-type is a <process>REQUIRED</process> attribute of <parent>&lt;<x/>stylesheet&gt;</parent>. This attribute accepts only one of two values:</paragraph><value-list> <list-item>application/xslt+xml</list-item><list-item>text/css</list-item></value-list><example>style-type=&#34;text/css&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="application/xslt+xml"/> <xs:enumeration value="text/css"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="style-namespace"> <xs:annotation> <xs:documentation> <name>style-namespace</name><paragraph>Attribute style-namespace is a <process>REQUIRED</process> attribute of <parent>&lt;<x/>stylesheet&gt;</parent>. The value for this attribute serves as unique named prefix for stylesheet declarations from this stylesheet. <process>This attribute MUST follow the same syntax and processing requirements as the attribute id. This attribute value MUST be unique within the scope of the &lt;<x/>session&gt; and SHALL NOT be unique in the entirety of a MML document.</process> The prefix is <process>REQUIRED</process> for stylesheet references using the &#34;style&#34; attribute that is available to elements in the &lt;<x/>markup&gt; section of the session.</paragraph><example>style-namespace=&#34;global&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:ID"> <xs:pattern value="\w+"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="media"> <xs:annotation> <xs:documentation> <name>media</name><paragraph>Attribute media is an <process>OPTIONAL</process> attribute of <parent>&lt;<x/>stylesheet&gt;</parent>. The default value for this attribute is &#34;screen&#34; and this default value <process>MUST</process> be presumed if the attribute is absent. This list of accepted values exists in conformance to the list defined by the W3C: http://www.w3.org/TR/CSS2/media.html</paragraph><value-list> <list-item>all</list-item><list-item>aural</list-item><list-item>braille</list-item><list-item>embossed</list-item><list-item>handheld</list-item><list-item>print</list-item><list-item>projection</list-item><list-item>screen</list-item><list-item>tty</list-item><list-item>tv</list-item></value-list><example>media=&#34;braille&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="all"/> <xs:enumeration value="aural"/> <xs:enumeration value="braille"/> <xs:enumeration value="embossed"/> <xs:enumeration value="handheld"/> <xs:enumeration value="print"/> <xs:enumeration value="projection"/> <xs:enumeration value="screen"/> <xs:enumeration value="tty"/> <xs:enumeration value="tv"/> </xs:restriction></xs:simpleType></xs:attribute><xs:element name="source"> <xs:annotation> <xs:documentation> <name>source</name><paragraph>Element source is a <process>REQUIRED</process> choice between itself, &lt;<x/>plain-text&gt;, and &lt;<x/>markup&gt; from <parent>&lt;<x/>session&gt;</parent>. The intent of this tag is to allow an external resource to act as the message body. There is no requirement for a MML processor to process any external resource, so the content established by this element <process>SHALL NOT</process> always be communicated.</paragraph><example>&lt;<x/>source&gt;&#8596;&lt;<x/>/source&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element ref="source-uri"> <xs:annotation> <xs:documentation>source-uri</xs:documentation></xs:annotation></xs:element><xs:element ref="source-type"> <xs:annotation> <xs:documentation>source-type</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="source-uri"> <xs:annotation> <xs:documentation> <name>source-uri</name><paragraph>Element source-uri is a <process>REQUIRED</process> child of <parent>&lt;<x/>source&gt;</parent>. <process>This tag MUST only contain a URI of the requested resource that is to act as the body of the session.</process></paragraph><example>&lt;<x/>source-uri&gt;http://mailmarkup.org/FlyingToGhazni.mp4&lt;<x/>/source-uri&gt;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:anyURI"> <xs:minLength value="5"/> </xs:restriction></xs:simpleType></xs:element><xs:element name="source-type" type="mime-type"> <xs:annotation> <xs:documentation> <name>source-type</name><paragraph>Element source-type is a <process>REQUIRED</process> child of <parent>&lt;<x/>source&gt;</parent>. This tag is of element type &#34;mime-type&#34;. The type determines how or if the external resource described in &lt;<x/>source-uri&gt; <process>MUST</process> be processed by the document&#39;s destination.</paragraph><example>&lt;<x/>source-type&gt;&lt;<x/>video&gt;mpeg4-generic&lt;<x/>/video&gt;&lt;<x/>/source-type&gt;</example></xs:documentation></xs:annotation></xs:element><xs:element name="plain-text"> <xs:annotation> <xs:documentation> <name>plain-text</name><paragraph>Element plain-text is a <process>REQUIRED</process> choice between itself, &lt;<x/>source&gt;, and &lt;<x/>markup&gt; from <parent>&lt;<x/>session&gt;</parent>. This tag <process>MUST</process> contain only plain text. <process>Code MUST NOT be processed in this tag.</process> The intent of this tag is to allow session authors to communicate using text without interference to the processing of that content. Presentation <process>MAY</process> be applied to this element&#39;s content if the MML processor so allows and a stylesheet is provided.</paragraph><example>&lt;<x/>plain-text&gt;This is a plain text message body.&lt;<x/>/plain-text&gt;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="5"/> </xs:restriction></xs:simpleType></xs:element><xs:element name="markup"> <xs:annotation> <xs:documentation> <name>markup</name><paragraph>Element markup is a <process>REQUIRED</process> choice between itself, &lt;<x/>source&gt;, and &lt;<x/>plain-text&gt; of <parent>&lt;<x/>session&gt;</parent>. The elements in this section of MML are arranged in three groups: complex-blocks, simple-blocks, and inline elements. A complex-block is a tag that is capable of containing of either simple-blocks or simple-blocks plus other complex-blocks. Complex-blocks are not capable of containing text content or inline elements. A simple-block is a tag that is capable of containing text and inline elements, but is not capable of containing other simple-blocks or complex-blocks. Inline elements are not structural elements. These elements <process>MUST</process> exist in a simple-block container. Inline elements are intended to describe text content, supply additional meta-data, or apply more specific presentation.</paragraph><example>&lt;<x/>markup&gt;&#8596;&lt;<x/>/markup&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:choice maxOccurs="unbounded"> <xs:group ref="complex-blocks"> <xs:annotation> <xs:documentation>complex-blocks</xs:documentation></xs:annotation></xs:group><xs:group ref="simple-blocks"> <xs:annotation> <xs:documentation>simple-blocks</xs:documentation></xs:annotation></xs:group><xs:any namespace="##other" processContents="lax"> <xs:annotation> <xs:documentation>Any elements provided they exist with a namespace prefix in accordance with a stated namespace definition. Namespace prefixed elements, aside from those that fall into the &#34;xfm&#34; namespace, <process>MUST NOT</process> be validated by the MML schema.</xs:documentation></xs:annotation></xs:any></xs:choice></xs:sequence><xs:anyAttribute namespace="xmlns"> <xs:annotation> <xs:documentation>Any attribute with a namespace prefix of &#34;xmlns&#34;. Value of an attribute prefixed with &#34;xmlns&#34; should be URI. (optional and may occur more than once)</xs:documentation></xs:annotation></xs:anyAttribute></xs:complexType></xs:element><xs:attributeGroup name="core-attrs"> <xs:annotation> <xs:documentation> <name>core-attrs</name><paragraph>Attribute group core-attrs contains the attributes that are globally available to markup elements aside from a few rare exceptions.</paragraph></xs:documentation></xs:annotation><xs:attribute ref="id" use="optional"> <xs:annotation> <xs:documentation>id (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="style" use="optional"> <xs:annotation> <xs:documentation>style (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="title" use="optional"> <xs:annotation> <xs:documentation>title (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="role" use="optional"> <xs:annotation> <xs:documentation>role (optional)</xs:documentation></xs:annotation></xs:attribute></xs:attributeGroup><xs:attributeGroup name="core-attrs-uri"> <xs:annotation> <xs:documentation> <name>core-attrs-uri</name><paragraph>Attribute group core-attrs-uri is identical to the core-attrs attribute group with the exception to inclusion of the uri attribute. It was necessary to specify these two groups separately because many elements require a URI and many <process>MUST NOT</process> receive a URI.</paragraph></xs:documentation></xs:annotation><xs:attribute ref="id" use="optional"> <xs:annotation> <xs:documentation>id (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="style" use="optional"> <xs:annotation> <xs:documentation>style (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="title" use="optional"> <xs:annotation> <xs:documentation>title (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="role" use="optional"> <xs:annotation> <xs:documentation>role (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="uri" use="optional"> <xs:annotation> <xs:documentation>uri (optional)</xs:documentation></xs:annotation></xs:attribute></xs:attributeGroup><xs:attributeGroup name="inter-attrs"> <xs:annotation> <xs:documentation> <name>inter-attrs</name><paragraph>Attribute group inter-attrs exists to benefit features of internationalization of text rendering. This is not a presentation issue of altering how text appears, but how it functionally contributes to processing dependencies to the computer for the benefit of assistive technologies. MML processors <process>SHOULD</process> allow users to determine the default rendering methods of text.</paragraph></xs:documentation></xs:annotation><xs:attribute default="tl" ref="direction" use="optional"> <xs:annotation> <xs:documentation>tl (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute default="horizontal" ref="orientation" use="optional"> <xs:annotation> <xs:documentation>orientation (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute default="standard" ref="wrap" use="optional"> <xs:annotation> <xs:documentation>wrap (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute default="en" ref="section-language" use="optional"> <xs:annotation> <xs:documentation>section-language (optional)</xs:documentation></xs:annotation></xs:attribute></xs:attributeGroup><xs:attributeGroup name="cell-attrs"> <xs:annotation> <xs:documentation> <name>cell-attrs</name><paragraph>Attribute group cell-attrs stores attributes relevent to table cell merging.</paragraph></xs:documentation></xs:annotation><xs:attribute default="1" ref="span-column" use="optional"> <xs:annotation> <xs:documentation>span-column (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute default="1" ref="span-row" use="optional"> <xs:annotation> <xs:documentation>span-row (optional)</xs:documentation></xs:annotation></xs:attribute></xs:attributeGroup><xs:attribute name="id"> <xs:annotation> <xs:documentation> <name>id</name><paragraph>Attribute id is an optional global attribute of the <parent>core-attrs</parent> and <parent>core-attrs-uri</parent> attribute groups. This attribute exists to assign a unique identification to an element. <process>The value for this attribute MUST NOT contain punctuation, white space, or XML syntax characters. The value MUST allow Unicode word characters in accordance with the XML regular expression definition for a word character.</process> This attribute is intended to create a unique hook to a particular element for MML processor specific behavior or presentation. There are some elements that exist as a pair set and require the id attribute to refer to each other. The id attribute <process>MUST</process> be unique per &lt;<x/>session&gt; section and <process>SHALL NOT</process> be unique per a MML document of multiple sessions.</paragraph><example>id=&#34;Science_Article_20100101&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:ID"> <xs:minLength value="2"/> <xs:pattern value="\w+"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="style"> <xs:annotation> <xs:documentation> <name>style</name><paragraph>Attribute style is an optional global attribute of the <parent>core-attrs</parent> and <parent>core-attrs-uri</parent> attribute groups. This attribute exists to reference a reusable stylesheet property. <process>The value for this attribute MUST be a set of Unicode word characters in accordance with the XML regular expression definition of a word character plus a colon followed by a series of Unicode word characters.</process> The value before the colon <process>MUST</process> represent the value of any supplied stylesheet-namespace attribute. This tells the MML processor which stylesheet the style reference is referring to. The value after the colon <process>MUST</process> represent some designation defined in the stylesheet, such as a CSS class name.</paragraph><example>style=&#34;global:comparisonGridTitle&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:token"> <xs:minLength value="4"/> <xs:pattern value="\w+\:\w+"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="title"> <xs:annotation> <xs:documentation> <name>title</name><paragraph>Attribute title is an optional global attribute of the <parent>core-attrs</parent> and <parent>core-attrs-uri</parent> attribute groups. The title attribute is intended to supply additional content to an element beyond its contained text. The value for this attribute <process>MUST</process> be whitespace normalized text. This attribute is supplied for the semantic and accessibility benefits of expanded meta-data for human consumption.</paragraph><example>title=&#34;This attribute could be used to supply additional instructions or data outside the context of the element&#39;s content.&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:normalizedString"> <xs:minLength value="2"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="role"> <xs:annotation> <xs:documentation> <name>role</name><paragraph>Attribute role is an optional global attribute of the <parent>core-attrs</parent> and <parent>core-attrs-uri</parent> attribute groups. This attribute is intended to allow for specific semantic redefinition of any element where its use is allowed. If a session author had the ability to rename a tag to something more semantically specific that new name is the value that <process>SHOULD</process> fill the role attribute. The value of the role attribute <process>SHOULD NOT</process> challenge or contradict the intent of the named element it is used with.</paragraph><paragraph>This attribute is expected to offer significantly expanded utility in future versions of MML. The WAI-ARIA technology and RDF derived technologies are expected to benefit from use of the role attribute.</paragraph><example>role=&#34;instructions&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:token"> <xs:minLength value="2"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="uri"> <xs:annotation> <xs:documentation> <name>uri</name><paragraph>Attribute uri is an optional global attribute of the <parent>core-attrs-uri</parent> attribute group. <process>This attribute MUST contain only a URI value as defined by RFC 3986 or RFC 2368 for email addresses specifically.</process> Use of this attribute is equivalent to imposing a webpage hyperlink. A same-document referrence, referred to as a URI fragment, <process>MUST</process> refer only to the value of a specified id attribute value within the same session. A minimum value length of 5 characters is <process>REQUIRED</process>.</paragraph><example>uri=&#34;http://mailmarkup.org/examplePage.html#fragment&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:anyURI"> <xs:minLength value="5"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="direction"> <xs:annotation> <xs:documentation> <name>direction</name><paragraph>The direction attribute is an optional global attribute of the <parent>inter-attrs</parent> attribute group. The direction Attribute determines which direction the text is to flow as it is typed. The default value is left to right if orientation has a value of horizontal or top to bottom if orientation has a value of vertical.</paragraph><example>direction=&#34;br&#34;</example><value-list> <list-item>tl - indicates starting from top or left</list-item><list-item>br - indicates starting from bottom or right</list-item></value-list></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="tl"/> <xs:enumeration value="br"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="orientation"> <xs:annotation> <xs:documentation> <name>orientation</name><paragraph>Attribute orientation is an optional global attribute of the <parent>inter-attrs</parent> attribute group. This attribute determines whether text characters render in a vertical or horizontal manner. Horizontal is the default value. Acceptable values are:</paragraph><value-list> <list-item>horizontal</list-item><list-item>vertical</list-item></value-list><example>orientation=&#34;horizontal&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="horizontal"/> <xs:enumeration value="vertical"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="wrap"> <xs:annotation> <xs:documentation> <name>wrap</name><paragraph>Attribute wrap is an optional global attribute of the <parent>inter-attrs</parent> attribute group. This attribute determines how lines of text are rendered to the page. A value of &#34;standard&#34; does nothing different and is the default value. The value &#34;reverse&#34; <process>MUST</process> force text render opposite of its standard behavior.</paragraph><paragraph>Assuming direction and orientation are at default standard behavior is to wrap a line of text below the prior existing text. Under those conditions a value of &#34;reverse&#34; <process>MUST</process> force the line of text to wrap above the prior existing line of text.</paragraph><paragraph>A value of &#34;none&#34; forces the text to not wrap. <process>Under the condition that non-wrapping text is wider or taller than its container the container MUST stretch and the page MUST scroll to keep the text visibly legible so long as there are not presentation specifications to the contrary.</process></paragraph><value-list> <list-item>standard</list-item><list-item>reverse</list-item><list-item>none</list-item></value-list><example>wrap=&#34;reverse&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="standard"/> <xs:enumeration value="reverse"/> <xs:enumeration value="none"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="section-language"> <xs:annotation> <xs:documentation> <name>section-language</name><paragraph>Attribute section-language is an optional global attribute of the <parent>inter-attrs</parent> attribute group. The attribute section-language specifies the language of a particular section, container, or element in the &lt;<x/>markup&gt; section. This is absolutely necessary to alert readers and semantic devices that the natural language has changed from the default specified language. The values for this attribute <process>MUST</process> be ISO 639 language code.</paragraph><example>section-language=&#34;haz&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:language"> <xs:minLength value="2"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="refer"> <xs:annotation> <xs:documentation> <name>refer</name><paragraph>Attribute refer is a required attribute of <parent>&lt;<x/>cite&gt;</parent> and <parent>&lt;<x/>identifier&gt;</parent> elements and is an optional attribute of <parent>&lt;<x/>button&gt;</parent>. This attribute is a reference to the value of an id attribute supplied on another element of the same &lt;<x/>markup&gt; section. <process>If the value of this attribute does not match an existent id attribute value of only the same session the document MUST NOT validate.</process></paragraph><example>refer=&#34;inventory21793-28&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:IDREF"> <xs:minLength value="2"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="span-column"> <xs:annotation> <xs:documentation> <name>span-column</name><paragraph>Attribute span-column is an optional attribute of <parent>cell-attrs</parent> attribute group. This attribute allows a &lt;<x/>table-cell&gt; or &lt;<x/>head-cell&gt; to occupy more than one column in a table. The values for this attribute <process>MUST</process> be a positive integer. The default value is &#34;1&#34;.</paragraph><example>span-column=&#34;3&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:positiveInteger"/> </xs:simpleType></xs:attribute><xs:attribute name="span-row"> <xs:annotation> <xs:documentation> <name>span-row</name><paragraph>Attribute span-row isan optional attribute of <parent>cell-attrs</parent> attribute group. The attribute span-row allows a &lt;<x/>table-cell&gt; or &lt;<x/>head-cell&gt; to occupy more than one row in a table. The values for this attribute MUST be a positive integer. The default value is &#34;1&#34;.</paragraph><example>span-row=&#34;4&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:positiveInteger"/> </xs:simpleType></xs:attribute><xs:attribute name="scope"> <xs:annotation> <xs:documentation> <name>scope</name><paragraph>Attribute scope is an optional attribute of the <parent>&lt;<x/>head-cell&gt;</parent> element. This attribute is used in table header cells to determine which table cells the header is providing a heading for. The value &#34;column&#34; dictates that a header cell is providing a heading for only the first column of cells the header cell occupies. The value &#34;row&#34; dictates that a header cell is providing a heading for only the first row of cells the header cell occupies. A value of &#34;group-column&#34; dictates that a header cell provides a heading for all cells in all columns that it occupies. The value &#34;group-row&#34; dictates the header cell is providing a heading for all cells in all rows it occupies.</paragraph><paragraph>The word first, as used in defining column and row as values to the scope attribute, <process>MUST</process> refer to the first group of elements as dictated by the rendering direction of text set using internationalization attributes.</paragraph><value-list> <list-item>column</list-item><list-item>row</list-item><list-item>group-column</list-item><list-item>group-row</list-item></value-list><example>scope=&#34;group-column&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="column"/> <xs:enumeration value="row"/> <xs:enumeration value="group-column"/> <xs:enumeration value="group-row"/> </xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="long-form"> <xs:annotation> <xs:documentation> <name>long-form</name><paragraph>Attribute long-form is a required attribute of <parent>&lt;<x/>short&gt;</parent>. This attribute <process>MUST</process> serve to represent the expanded text that is described by the &lt;<x/>short&gt; element.</paragraph><example>long-form=&#34;Afghan National Army&#34;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:token"> <xs:minLength value="5"/> </xs:restriction></xs:simpleType></xs:attribute><xs:group name="complex-blocks"> <xs:annotation> <xs:documentation> <name>complex-blocks</name><paragraph>A complex block is a tag that is capable of containing simple blocks or complex blocks, but is not capable of containing text. A choice of one of the contained elements is <process>REQUIRED</process> at each instantiation of this group.</paragraph></xs:documentation></xs:annotation><xs:choice> <xs:group ref="list-group"> <xs:annotation> <xs:documentation>list-group</xs:documentation></xs:annotation></xs:group><xs:element ref="table"> <xs:annotation> <xs:documentation>table</xs:documentation></xs:annotation></xs:element><xs:element ref="section"> <xs:annotation> <xs:documentation>section</xs:documentation></xs:annotation></xs:element><xs:element ref="form"> <xs:annotation> <xs:documentation>form</xs:documentation></xs:annotation></xs:element></xs:choice></xs:group><xs:group name="simple-blocks"> <xs:annotation> <xs:documentation> <name>simple-blocks</name><paragraph>A simple block is a tag that is capable of containing text and/or line-level tags, but is not capable of containing complex blocks. A choice of one of the contained elements is <process>REQUIRED</process> at each instantiation of this group.</paragraph></xs:documentation></xs:annotation><xs:choice> <xs:element ref="block-code"> <xs:annotation> <xs:documentation>block-code</xs:documentation></xs:annotation></xs:element><xs:element ref="block-quote"> <xs:annotation> <xs:documentation>block-quote</xs:documentation></xs:annotation></xs:element><xs:element ref="citation"> <xs:annotation> <xs:documentation>citation</xs:documentation></xs:annotation></xs:element><xs:element ref="heading"> <xs:annotation> <xs:documentation>heading</xs:documentation></xs:annotation></xs:element><xs:element ref="object"> <xs:annotation> <xs:documentation>object</xs:documentation></xs:annotation></xs:element><xs:element ref="paragraph"> <xs:annotation> <xs:documentation>paragraph</xs:documentation></xs:annotation></xs:element><xs:element ref="separator"> <xs:annotation> <xs:documentation>separator</xs:documentation></xs:annotation></xs:element></xs:choice></xs:group><xs:complexType name="simple-blocks-type" mixed="true"> <xs:annotation> <xs:documentation> <name>simple-blocks-type</name><paragraph>Complex type simple-blocks-type is a generic simple block element representation.</paragraph></xs:documentation></xs:annotation><xs:group minOccurs="0" maxOccurs="unbounded" ref="inline"> <xs:annotation> <xs:documentation>inline (optional)</xs:documentation></xs:annotation></xs:group><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup><xs:attributeGroup ref="inter-attrs"> <xs:annotation> <xs:documentation>inter-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType><xs:group name="inline"> <xs:annotation> <xs:documentation> <name>inline</name><paragraph>Element group inline is a collection of inline elements. A choice of one of the contained elements is <process>REQUIRED</process> at each instantiation of this group.</paragraph></xs:documentation></xs:annotation><xs:choice> <xs:group ref="xfm:Form.Controls"> <xs:annotation> <xs:documentation>xfm:Form.Controls</xs:documentation></xs:annotation></xs:group><xs:element ref="short"> <xs:annotation> <xs:documentation>short</xs:documentation></xs:annotation></xs:element><xs:element ref="button"> <xs:annotation> <xs:documentation>button</xs:documentation></xs:annotation></xs:element><xs:element ref="cite"> <xs:annotation> <xs:documentation>cite</xs:documentation></xs:annotation></xs:element><xs:element ref="emphasis"> <xs:annotation> <xs:documentation>emphasis</xs:documentation></xs:annotation></xs:element><xs:element ref="identifier"> <xs:annotation> <xs:documentation>identifier</xs:documentation></xs:annotation></xs:element><xs:element ref="quote"> <xs:annotation> <xs:documentation>quote</xs:documentation></xs:annotation></xs:element><xs:element ref="format"> <xs:annotation> <xs:documentation>format</xs:documentation></xs:annotation></xs:element><xs:element ref="strong"> <xs:annotation> <xs:documentation>strong</xs:documentation></xs:annotation></xs:element><xs:element ref="title"> <xs:annotation> <xs:documentation>title</xs:documentation></xs:annotation></xs:element></xs:choice></xs:group><xs:group name="object-group"> <xs:annotation> <xs:documentation> <name>object-group</name><paragraph>Element group object-group contains the elements necessary to represent a binary large object (BLOB) data asset.</paragraph></xs:documentation></xs:annotation><xs:sequence> <xs:group minOccurs="0" maxOccurs="unbounded" ref="inline"> <xs:annotation> <xs:documentation>inline (optional)</xs:documentation></xs:annotation></xs:group><xs:element ref="object-text"> <xs:annotation> <xs:documentation>object-text (required)</xs:documentation></xs:annotation></xs:element><xs:element ref="object-uri"> <xs:annotation> <xs:documentation>object-uri (required)</xs:documentation></xs:annotation></xs:element><xs:element ref="object-type"> <xs:annotation> <xs:documentation>object-type (required)</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:group><xs:complexType name="inline-base"> <xs:annotation> <xs:documentation> <name>inline-base</name><paragraph>Complex type inline-base is a generic inline element representation referenced from <parent>inline-type</parent> complex-type.</paragraph></xs:documentation></xs:annotation><xs:simpleContent> <xs:extension base="xs:string"> <xs:attributeGroup ref="core-attrs-uri"> <xs:annotation> <xs:documentation>core-attrs-uri</xs:documentation></xs:annotation></xs:attributeGroup></xs:extension></xs:simpleContent></xs:complexType><xs:complexType name="inline-type"> <xs:annotation> <xs:documentation> <name>inline-type</name><paragraph>Complex type inline-type is a container of the inline-base complex type plus a constaining facet that requires at least 1 character be contained by generic inline elements.</paragraph></xs:documentation></xs:annotation><xs:simpleContent> <xs:restriction base="inline-base"> <xs:minLength value="1"/> </xs:restriction></xs:simpleContent></xs:complexType><xs:complexType name="format-type" mixed="true"> <xs:annotation> <xs:documentation> <name>format-type</name><paragraph>Complex type format-type represents the structure of the &lt;<x/>format&gt; element necessary to allow that element to nest itself.</paragraph></xs:documentation></xs:annotation><xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" ref="format"> <xs:annotation> <xs:documentation>format (optional)</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attributeGroup ref="core-attrs-uri"> <xs:annotation> <xs:documentation>core-attrs-uri</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType><xs:group name="list-group"> <xs:annotation> <xs:documentation> <name>list-group</name><paragraph>Element group list-group contains the various list type elements. A choice of one of the contained elements is <process>REQUIRED</process> at each instantiation of this group.</paragraph></xs:documentation></xs:annotation><xs:choice> <xs:element ref="define-list"> <xs:annotation> <xs:documentation>define-list</xs:documentation></xs:annotation></xs:element><xs:element ref="navigation-list"> <xs:annotation> <xs:documentation>navigation-list</xs:documentation></xs:annotation></xs:element><xs:element ref="order-list"> <xs:annotation> <xs:documentation>order-list</xs:documentation></xs:annotation></xs:element><xs:element ref="unorder-list"> <xs:annotation> <xs:documentation>unorder-list</xs:documentation></xs:annotation></xs:element></xs:choice></xs:group><xs:complexType name="nesting-block"> <xs:annotation> <xs:documentation> <name>nesting-block</name><paragraph>Complex type nesting-block is the unique structure supplied for the &lt;<x/>section&gt; element which is the complex block capable of nesting itself.</paragraph></xs:documentation></xs:annotation><xs:choice maxOccurs="unbounded"> <xs:group ref="complex-blocks"> <xs:annotation> <xs:documentation>complex-blocks</xs:documentation></xs:annotation></xs:group><xs:group ref="simple-blocks"> <xs:annotation> <xs:documentation>simple-blocks</xs:documentation></xs:annotation></xs:group></xs:choice></xs:complexType><xs:element name="define-list"> <xs:annotation> <xs:documentation> <name>define-list</name><paragraph>Element define-list is a member of group <parent>list-group</parent> and is a complex block element. This element is intended to establish a list of definitions by matching any number of defining terms to any number of definitions.</paragraph><example>&lt;<x/>define-list&gt;&#8596;&lt;<x/>/define-list&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="define-item"> <xs:annotation> <xs:documentation>define-item (required and may occur more than once)</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="define-item"> <xs:annotation> <xs:documentation> <name>define-item</name><paragraph>Element define-item is a required child of element <parent>&lt;<x/>define-list&gt;</parent>. This element represents a single defining instance. The associations drawn by the child tags are as follows: multiple defining terms mapped to a single definition, a single term mapped against multiple definitions, or multiple terms that commonly share multiple definitions. As a result of these three possible associations at least one of each child element <process>MUST</process> occur.</paragraph><example>&lt;<x/>define-item&gt;&#8596;&lt;<x/>/define-item&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="define-term"> <xs:annotation> <xs:documentation>define-term (required and may occur more than once)</xs:documentation></xs:annotation></xs:element><xs:element maxOccurs="unbounded" ref="definition"> <xs:annotation> <xs:documentation>definition (required and may occur more than once)</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="define-term"> <xs:annotation> <xs:documentation> <name>define-term</name><paragraph>Element define-term is a required child of element <parent>&lt;<x/>define-item&gt;</parent>. This tag is intended to contain a single term, phrase, or clause to be defined. The value for this tag <process>MUST</process> be whitespace normalized text.</paragraph><example>&lt;<x/>define-term&gt;Hazara&lt;<x/>/define-term&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:simpleContent> <xs:extension base="xs:normalizedString"> <xs:attributeGroup ref="core-attrs-uri"> <xs:annotation> <xs:documentation>core-attrs-uri</xs:documentation></xs:annotation></xs:attributeGroup><xs:attributeGroup ref="inter-attrs"> <xs:annotation> <xs:documentation>inter-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="definition"> <xs:annotation> <xs:documentation> <name>definition</name><paragraph>Element definition is a required child of element <parent>&lt;<x/>define-item&gt;</parent>. This tag is intended to contain the definition text that defines the associated terms. The value for this tag can be text and inline elements.</paragraph><example>&lt;<x/>definition&gt;a commonly discriminated major ethinic minority of central Afghanistan&lt;<x/>/definition&gt;</example></xs:documentation></xs:annotation><xs:complexType mixed="true"> <xs:group minOccurs="0" maxOccurs="unbounded" ref="inline"> <xs:annotation> <xs:documentation>inline (optional)</xs:documentation></xs:annotation></xs:group><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup><xs:attributeGroup ref="inter-attrs"> <xs:annotation> <xs:documentation>inter-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="navigation-list"> <xs:annotation> <xs:documentation> <name>navigation-list</name><paragraph>Element navigation-list is a member of group <parent>list-group</parent> and is a complex block element. This element establishes a list of items that exist to either direct traffic or create a menu of URIs. This tag allows for either a heading or a set of descriptive text and at least one navigation item.</paragraph><example>&lt;<x/>navigation-list&gt;&#8596;&lt;<x/>/navigation-list&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:choice minOccurs="0"> <xs:element ref="heading"> <xs:annotation> <xs:documentation>heading (optional choice of heading or identifier)</xs:documentation></xs:annotation></xs:element><xs:element ref="identifier"> <xs:annotation> <xs:documentation>identifier (optional choice of heading or identifier)</xs:documentation></xs:annotation></xs:element></xs:choice><xs:element maxOccurs="unbounded" ref="navigation-item"> <xs:annotation> <xs:documentation>navigation-item (required and may occur more than once)</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="navigation-item"> <xs:annotation> <xs:documentation> <name>navigation-item</name><paragraph>Element navigation-item is a required child of element <parent>&lt;<x/>navigation-list&gt;</parent>. This element is a single instance of navigation in a list of navigation choices. This element may contain either an object for navigation or text for navigation as determined by its child tags. A uri attribute is <process>REQUIRED</process> on this element.</paragraph><example>&lt;<x/>navigation-item&gt;&#8596;&lt;<x/>/navigation-item&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:choice> <xs:element ref="navigation-object"> <xs:annotation> <xs:documentation>navigation-object (required choice of navigation-object or navigation-text)</xs:documentation></xs:annotation></xs:element><xs:element ref="navigation-text"> <xs:annotation> <xs:documentation>navigation-text (required choice of navigation-object or navigation-text)</xs:documentation></xs:annotation></xs:element></xs:choice><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup><xs:attribute ref="uri" use="required"> <xs:annotation> <xs:documentation>uri (required)</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element><xs:element name="navigation-object"> <xs:annotation> <xs:documentation> <name>navigation-object</name><paragraph>Element navigation-object is a required choice between itself and element &lt;<x/>navigation-text&gt; of element <parent>&lt;<x/>navigation-item&gt;</parent>. This element is a standard &lt;<x/>object&gt; that is modified to not allow use of the uri attribute. This tag <process>SHOULD</process> only be used if the focus of navigation for the &lt;<x/>navigation-item&gt; of concern is an external resource expected to be processed into the content of the message body.</paragraph><example>&lt;<x/>navigation-object&gt;&#8596;&lt;<x/>/navigation-object&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element ref="object-text"> <xs:annotation> <xs:documentation>object-text (required)</xs:documentation></xs:annotation></xs:element><xs:element ref="object-uri"> <xs:annotation> <xs:documentation>object-uri (required)</xs:documentation></xs:annotation></xs:element><xs:element ref="object-type"> <xs:annotation> <xs:documentation>object-type (required)</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attributeGroup ref="inter-attrs"> <xs:annotation> <xs:documentation>inter-attrs</xs:documentation></xs:annotation></xs:attributeGroup><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="object-text"> <xs:annotation> <xs:documentation> <name>object-text</name><paragraph>Element object-text is a required child of <parent>&lt;<x/>navigation-object&gt;</parent> and <parent>&lt;<x/>object&gt;</parent>. Object text is the alternative text content that is to be rendered as content if the object cannot be resolved or processed.</paragraph><example>&lt;<x/>object-text&gt;alternative text that represents or describes a binary large object (BLOB) data asset&lt;<x/>/object-text&gt;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:normalizedString"> <xs:minLength value="3"/> </xs:restriction></xs:simpleType></xs:element><xs:element name="object-uri"> <xs:annotation> <xs:documentation> <name>object-uri</name><paragraph>Element object-uri is a required child of <parent>&lt;<x/>navigation-object&gt;</parent> and <parent>&lt;<x/>object&gt;</parent>. This element <process>MUST</process> only contain a URI value and that URI <process>MUST</process> point to the location of a resource to appear in the message body.</paragraph><example>&lt;<x/>object-uri&gt;http://mailmarkup.org/mail.pdf&lt;<x/>/object-uri&gt;</example></xs:documentation></xs:annotation><xs:simpleType> <xs:restriction base="xs:anyURI"/> </xs:simpleType></xs:element><xs:element name="object-type" type="mime-type"> <xs:annotation> <xs:documentation> <name>object-type</name><paragraph>Element object-type is a required child of <parent>&lt;<x/>navigation-object&gt;</parent> and <parent>&lt;<x/>object&gt;</parent>. This element is of complex type &#34;mime-type&#34;.</paragraph><example>&lt;<x/>object-type&gt;&lt;<x/>application&gt;pdf&lt;<x/>/application&gt;&lt;<x/>/object-type&gt;</example></xs:documentation></xs:annotation></xs:element><xs:element name="navigation-text"> <xs:annotation> <xs:documentation> <name>navigation-text</name><paragraph>Element navigation-text is a required choice between itself and element &lt;<x/>navigation-object&gt; of element <parent>&lt;<x/>navigation-item&gt;</parent>. This element contains text and whitespace that is the focus of a navigation item.</paragraph><example>&lt;<x/>navigation-text&gt;This is text that would be a navigation item in a list of navigation items.&lt;<x/>/navigation-text&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attributeGroup ref="inter-attrs"> <xs:annotation> <xs:documentation>inter-attrs</xs:documentation></xs:annotation></xs:attributeGroup><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="order-list"> <xs:annotation> <xs:documentation> <name>order-list</name><paragraph>Element order-list is a member of group <parent>list-group</parent> and is a complex block element. An ordered list is a list where each item in that list is enumerated in the meta-data so that the position of elements in the list relative to other list items is valid data. Whether or not this enumeration appears is to a human reader is strictly a presentation concern. This element is allowed descriptive text in the form of a &lt;<x/>heading&gt; or &lt;<x/>identifier&gt; child. Each item in the list <process>MUST</process> exist in the &lt;<x/>list-item&gt; child.</paragraph><example>&lt;<x/>order-list&gt;&#8596;&lt;<x/>/order-list&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:choice minOccurs="0"> <xs:element ref="heading"> <xs:annotation> <xs:documentation>heading (optional choice between heading and identifier)</xs:documentation></xs:annotation></xs:element><xs:element ref="identifier"> <xs:annotation> <xs:documentation>identifier (optional choice between heading and identifier)</xs:documentation></xs:annotation></xs:element></xs:choice><xs:element maxOccurs="unbounded" ref="list-item"> <xs:annotation> <xs:documentation>list-item (required and may occur more than once)</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="unorder-list"> <xs:annotation> <xs:documentation> <name>unorder-list</name><paragraph>Element order-list is a member of group <parent>list-group</parent> and is a complex block element. An unordered list is nearly identical to an ordered list except that list items are not enumerated. This means position of items in the list is irrelevant.</paragraph><example>&lt;<x/>unorder-list&gt;&#8596;&lt;<x/>/unorder-list&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:choice minOccurs="0"> <xs:element ref="heading"> <xs:annotation> <xs:documentation>heading (optional choice between heading and identifier)</xs:documentation></xs:annotation></xs:element><xs:element ref="identifier"> <xs:annotation> <xs:documentation>identifier (optional choice between heading and identifier)</xs:documentation></xs:annotation></xs:element></xs:choice><xs:element maxOccurs="unbounded" ref="list-item"> <xs:annotation> <xs:documentation>list-item (required and may occur more than once)</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="list-item"> <xs:annotation> <xs:documentation> <name>list-item</name><paragraph>Element list-item is a required child of <parent>&lt;<x/>order-list&gt;</parent> and <parent>&lt;<x/>order-list&gt;</parent>. This element represents a single listed instantiation in a either an ordered or unordered list. This element may contain a single simple block element or text plus 0 or more inline elements.</paragraph><example>&lt;<x/>list-item&gt;&lt;<x/>paragraph&gt;a paragraph in a list-item&lt;<x/>/paragraph&gt;&lt;<x/>/list-item&gt;</example></xs:documentation></xs:annotation><xs:complexType mixed="true"> <xs:choice> <xs:group ref="simple-blocks"> <xs:annotation> <xs:documentation>simple-blocks (required choice of a simple block or text and inline elements)</xs:documentation></xs:annotation></xs:group><xs:group maxOccurs="unbounded" ref="inline"> <xs:annotation> <xs:documentation>inline (required choice of a simple block or text and inline elements)</xs:documentation></xs:annotation></xs:group></xs:choice><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup><xs:attributeGroup ref="inter-attrs"> <xs:annotation> <xs:documentation>inter-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="form"> <xs:annotation> <xs:documentation> <name>form</name><paragraph>Element form is a member of group <parent>complex-blocks</parent>. This element is the high level parent container of a form. A form allows organized controls upon input and submission of information in various methods allowed by the XForms standard.</paragraph><example>&lt;<x/>form&gt;&#8596;&lt;<x/>form&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element ref="xfm:model"> <xs:annotation> <xs:documentation>xfm:model (required)</xs:documentation></xs:annotation></xs:element><xs:element ref="form-body"> <xs:annotation> <xs:documentation>form-body (required)</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="form-body"> <xs:annotation> <xs:documentation> <name>form-body</name><paragraph>Element form-body is a required child of <parent>&lt;<x/>form&gt;</parent>. This element is intended to contain all the form controls that a user could interact with plus other MML elements. A choice of elements from one of the three included element groups or the &lt;<x/>table&gt; element is required and that choice may occur more than once.</paragraph><example>&lt;<x/>form-body&gt;&#8596;&lt;<x/>form-body&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:group ref="list-group"> <xs:annotation> <xs:documentation>list-group</xs:documentation></xs:annotation></xs:group><xs:group ref="simple-blocks"> <xs:annotation> <xs:documentation>simple-blocks</xs:documentation></xs:annotation></xs:group><xs:group ref="xfm:UI.Common"> <xs:annotation> <xs:documentation>xfm:UI.Common</xs:documentation></xs:annotation></xs:group><xs:element ref="table"> <xs:annotation> <xs:documentation>table</xs:documentation></xs:annotation></xs:element></xs:choice></xs:complexType></xs:element><xs:element name="table"> <xs:annotation> <xs:documentation> <name>table</name><paragraph>Element table is a member of element group <parent>complex-blocks</parent> and is an optional child of <parent>&lt;<x/>form-body&gt;</parent>. This element allows authors to store and organize data in a grid or chart fashion.</paragraph><example>&lt;<x/>table&gt;&#8596;&lt;<x/>/table&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element minOccurs="0" ref="head-row"> <xs:annotation> <xs:documentation>head-row (optional)</xs:documentation></xs:annotation></xs:element><xs:element maxOccurs="unbounded" ref="table-row"> <xs:annotation> <xs:documentation>table-row (required and may occur more than once)</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="head-row"> <xs:annotation> <xs:documentation> <name>head-row</name><paragraph>Element head-row is an optional child of <parent>&lt;<x/>table&gt;</parent>. The header row is a container of header cells to provide meta-data for tables. </paragraph><example>&lt;<x/>head-row&gt;&#8596;&lt;<x/>/head-row&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="head-cell"> <xs:annotation> <xs:documentation>head-cell (required and may occur more than once)</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="head-cell"> <xs:annotation> <xs:documentation> <name>head-cell</name><paragraph>Element head-cell is a required child of <parent>&lt;<x/>head-row&gt;</parent> and an optional child of <parent>&lt;<x/>table-row&gt;</parent>. A header cell provides meta-data that either labels or describes the data contained within its scope. The scope of the header cell is determined by use of the scope attribute. <process>A header cell MUST contain either a single simple block or text plus any number of inline elements.</process></paragraph><example>&lt;<x/>head-cell&gt;&lt;<x/>paragraph&gt;Example of a paragraph in a table&#39;s head cell.&lt;<x/>/paragraph&gt;&lt;<x/>/head-cell&gt;</example></xs:documentation></xs:annotation><xs:complexType mixed="true"> <xs:choice> <xs:group ref="simple-blocks"> <xs:annotation> <xs:documentation>simple-blocks</xs:documentation></xs:annotation></xs:group><xs:group maxOccurs="unbounded" ref="inline"> <xs:annotation> <xs:documentation>inline</xs:documentation></xs:annotation></xs:group></xs:choice><xs:attribute default="column" ref="scope" use="optional"> <xs:annotation> <xs:documentation>scope</xs:documentation></xs:annotation></xs:attribute><xs:attributeGroup ref="cell-attrs"> <xs:annotation> <xs:documentation>cell-attrs</xs:documentation></xs:annotation></xs:attributeGroup><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup><xs:attributeGroup ref="inter-attrs"> <xs:annotation> <xs:documentation>inter-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="table-row"> <xs:annotation> <xs:documentation> <name>table-row</name><paragraph>Element table-row is a required child of <parent>&lt;<x/>table&gt;</parent>. This element <process>MAY</process> carry header cells or standard table cells. A row is the standard unit of organization in a MML table.</paragraph><example>&lt;<x/>table-row&gt;&#8596;&lt;<x/>/table-row&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="head-cell"> <xs:annotation> <xs:documentation>head-cell (required choice between head-cell and table-cell that may occur more than once)</xs:documentation></xs:annotation></xs:element><xs:element ref="table-cell"> <xs:annotation> <xs:documentation>table-cell (required choice between head-cell and table-cell that may occur more than once)</xs:documentation></xs:annotation></xs:element></xs:choice><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="table-cell"> <xs:annotation> <xs:documentation> <name>table-cell</name><paragraph>Element table-cell is a required child of <parent>&lt;<x/>table-row&gt;</parent>. The table cell is the standard unit of data in a table. A table cell is not intended to provide any meta-data about the table or the structure of the table. A table cell is intended to provide data directly to the user. <process>A table cell MUST contain either a single complex block or text plus any number of inline elements.</process></paragraph><example>&lt;<x/>table-cell&gt;some data here&lt;<x/>/table-cell&gt;</example></xs:documentation></xs:annotation><xs:complexType mixed="true"> <xs:choice> <xs:group ref="simple-blocks"> <xs:annotation> <xs:documentation>simple-blocks</xs:documentation></xs:annotation></xs:group><xs:group maxOccurs="unbounded" ref="inline"> <xs:annotation> <xs:documentation>inline</xs:documentation></xs:annotation></xs:group></xs:choice><xs:attributeGroup ref="cell-attrs"> <xs:annotation> <xs:documentation>cell-attrs</xs:documentation></xs:annotation></xs:attributeGroup><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup><xs:attributeGroup ref="inter-attrs"> <xs:annotation> <xs:documentation>inter-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="section"> <xs:annotation> <xs:documentation> <name>section</name><paragraph>Element section is a member of element group <parent>complex-blocks</parent>. A section is a high level structural organization block. This is the only complex block capable of containing itself, such as nesting. The intent of the &lt;<x/>section&gt; tag is to subdivide the markup into various smaller areas for content organization, separation, and semantics.</paragraph><example>&lt;<x/>section&gt;&lt;<x/>heading&gt;heading&lt;<x/>/heading&gt;&lt;<x/>section&gt;&#8596;&lt;<x/>/section&gt;&lt;<x/>/section&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:complexContent mixed="false"> <xs:extension base="nesting-block"> <xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:extension></xs:complexContent></xs:complexType></xs:element><xs:element name="block-code" type="simple-blocks-type"> <xs:annotation> <xs:documentation> <name>block-code</name><paragraph>Element block-code is a member of element group <parent>simple-blocks</parent> and is formed of the complex type <parent>simple-blocks-type</parent>. The block code simple block is intended to convey and describe code. <process>The contents of this container MUST NOT directly contain XML reserved characters.</process> An XML processor cannot be told to not process characters that construct its syntax. These reserved characters can be used if they are escaped with a character entity reference. Unlike the &lt;<x/>plain-text&gt; tag it is the author&#39;s responsibility to ensure the contents of this element are properly encoded. Improperly encoded reserved characters <process>SHOULD</process> expect a result of failure at validation. The reserved characters and their corresponding character entity references are:</paragraph><term-list> <list-item>&#60; - &#38;<x/>#60; - &#38;<x/>lt;</list-item><list-item>&#62; - &#38;<x/>#62; - &#38;<x/>gt;</list-item><list-item>&#38; - &#38;<x/>#38; - &#38;<x/>amp;</list-item><list-item>&#34; - &#38;<x/>#34; - &#38;<x/>quot;</list-item><list-item>&#39; - &#38;<x/>#39; - &#38;<x/>apos;</list-item></term-list><example>&lt;<x/>block-code&gt;var JavaScriptFunction = function () {var test = &#34;hello Bagram&#34;; return test;};&lt;<x/>/block-code&gt;</example></xs:documentation></xs:annotation></xs:element><xs:element name="block-quote" type="simple-blocks-type"> <xs:annotation> <xs:documentation> <name>block-quote</name><paragraph>Element block-quote is a member of element group <parent>simple-blocks</parent> and is formed of the complex type <parent>simple-blocks-type</parent>. A block quote is a large quotation that <process>MAY</process> span several statements. This element can contain text and any number of inline elements.</paragraph><example>&lt;<x/>block-quote&gt;This is a lengthy paraphrase that is better represented apart from other paragraphs.&lt;<x/>/block-quote&gt;</example></xs:documentation></xs:annotation></xs:element><xs:element name="citation"> <xs:annotation> <xs:documentation> <name>citation</name><paragraph>Element citation is a member of element group <parent>simple-blocks</parent>. A citation is a descriptive reference to a piece of information used in content by a session author. The information referenced by the &lt;<x/>citation&gt; tag automatically points to the content that requires it by use of a <process>REQUIRED</process> id attribute, which is referred to by the inline tag &lt;<x/>cite&gt;. This element contains text and any number of inline elements.</paragraph><example>&lt;<x/>citation id=&#34;SAFE&#34;&gt;Cheney A. &#34;Server-side Asynchronus Framework Execution&#34;, Internet Draft, Sabre Holdings, Aug 2009.&lt;<x/>/citation&gt;</example></xs:documentation></xs:annotation><xs:complexType mixed="true"> <xs:group minOccurs="0" maxOccurs="unbounded" ref="inline"> <xs:annotation> <xs:documentation>inline</xs:documentation></xs:annotation></xs:group><xs:attribute ref="id" use="required"> <xs:annotation> <xs:documentation>id (required)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="style" use="optional"> <xs:annotation> <xs:documentation>style (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="title" use="optional"> <xs:annotation> <xs:documentation>title (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attribute ref="role" use="optional"> <xs:annotation> <xs:documentation>role (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attributeGroup ref="inter-attrs"> <xs:annotation> <xs:documentation>inter-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="heading" type="simple-blocks-type"> <xs:annotation> <xs:documentation> <name>heading</name><paragraph>Element block-code is a member of element group <parent>simple-blocks</parent> and is formed of the complex type <parent>simple-blocks-type</parent>. A heading is a short block of text that describes the content that is to follow. This element <process>MUST</process> contain text and <process>MAY</process> contain 0 or more inline elements.</paragraph><example>&lt;<x/>heading&gt;This is a heading.&lt;<x/>heading&gt;</example></xs:documentation></xs:annotation></xs:element><xs:element name="object"> <xs:annotation> <xs:documentation> <name>object</name><paragraph>Element citation is a member of element group <parent>simple-blocks</parent>. An object is any external resource that is intended to be processed among the content of the message body, such as an image or video. It is important that an object contain text content that describes its resource. It is <process>OPTIONAL</process> for MML processors to process any external resource. If the resource fails to process according to the value of &lt;<x/>object-type&gt; the text contained by the object <process>MUST</process> display.</paragraph><example>&lt;<x/>object&gt;&#8596;&lt;<x/>/object&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:group ref="object-group"> <xs:annotation> <xs:documentation>object-group</xs:documentation></xs:annotation></xs:group><xs:attributeGroup ref="inter-attrs"> <xs:annotation> <xs:documentation>inter-attrs</xs:documentation></xs:annotation></xs:attributeGroup><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:complexType></xs:element><xs:element name="paragraph" type="simple-blocks-type"> <xs:annotation> <xs:documentation> <name>paragraph</name><paragraph>Element paragraph is a member of element group <parent>simple-blocks</parent> and is formed of the complex type <parent>simple-blocks-type</parent>. This element is the standard generic container of text and inline elements in a MML document. This element represents a paragraph and text is most typically grouped in paragraphs.</paragraph><example>&lt;<x/>paragraph&gt;This is a text paragraph.&lt;<x/>/paragraph&gt;</example></xs:documentation></xs:annotation></xs:element><xs:element name="separator" type="simple-blocks-type"> <xs:annotation> <xs:documentation> <name>separator</name><paragraph>Element separator is a member of element group <parent>simple-blocks</parent> and is formed of the complex type <parent>simple-blocks-type</parent>. This element is intended for semantic and structural purposes only. Use of this element indicates a structural obstruction in the flow or organization of content within a single section. This element <process>MAY</process> contain text, which would indicate or explain the nature or reasoning of separation mandated by use of this element.</paragraph><example>&lt;<x/>separator&gt;This page intentionally left blank.&lt;<x/>/separator&gt;</example></xs:documentation></xs:annotation></xs:element><xs:complexType name="short-type"> <xs:annotation> <xs:documentation> <name>short-type</name><paragraph>Complex type short-type is for representing inline element &lt;<x/>short&gt;.</paragraph></xs:documentation></xs:annotation><xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute ref="long-form" use="required"> <xs:annotation> <xs:documentation>long-form (required)</xs:documentation></xs:annotation></xs:attribute><xs:attributeGroup ref="core-attrs-uri"> <xs:annotation> <xs:documentation>core-attrs-uri</xs:documentation></xs:annotation></xs:attributeGroup></xs:extension></xs:simpleContent></xs:complexType><xs:element name="short"> <xs:annotation> <xs:documentation> <name>short</name><paragraph>Element short is a member of element group <parent>inline</parent> and is formed from complex type <parent>short-type</parent>. This inline element describes text that is a short-hand value, such as an abbreviation or acronym.</paragraph><example>&lt;<x/>short id=&#34;ANA&#34;&gt;Afghan National Army&lt;<x/>short&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:simpleContent> <xs:restriction base="short-type"> <xs:minLength value="1"/> <xs:whiteSpace value="collapse"/> </xs:restriction></xs:simpleContent></xs:complexType></xs:element><xs:complexType name="button-type"> <xs:annotation> <xs:documentation> <name>button-type</name><paragraph>Complex type button-type is for representing element &lt;<x/>button&gt;.</paragraph></xs:documentation></xs:annotation><xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute ref="refer" use="optional"> <xs:annotation> <xs:documentation>refer (optional)</xs:documentation></xs:annotation></xs:attribute><xs:attributeGroup ref="core-attrs-uri"> <xs:annotation> <xs:documentation>core-attrs-uri</xs:documentation></xs:annotation></xs:attributeGroup></xs:extension></xs:simpleContent></xs:complexType><xs:element name="button"> <xs:annotation> <xs:documentation> <name>button</name><paragraph>Element button is a member of element group <parent>inline</parent> and is formed from complex type <parent>button-type</parent>. This element exists to encourage interaction from a user outside of a form. This version of MML does not allow for client-side scripting, limiting the potential of a button, although a button <process>MAY</process> be able to interact with media that performs its own internal scripting, such as Flash media.</paragraph><example>&lt;<x/>button refer=&#34;intro_paragraph&#34;&gt;This button uses the refer attribute, which <process>MAY</process> function as a URI fragment identifier in the absense of the uri attribute.&lt;<x/>/button&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:simpleContent> <xs:restriction base="button-type"> <xs:minLength value="1"/> <xs:whiteSpace value="collapse"/> </xs:restriction></xs:simpleContent></xs:complexType></xs:element><xs:complexType name="cite-type"> <xs:annotation> <xs:documentation> <name>cite-type</name><paragraph>Complex type cite-type is for representing element &lt;<x/>cite&gt;.</paragraph></xs:documentation></xs:annotation><xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute ref="refer" use="required"> <xs:annotation> <xs:documentation>refer</xs:documentation></xs:annotation></xs:attribute><xs:attributeGroup ref="core-attrs"> <xs:annotation> <xs:documentation>core-attrs</xs:documentation></xs:annotation></xs:attributeGroup></xs:extension></xs:simpleContent></xs:complexType><xs:element name="cite"> <xs:annotation> <xs:documentation> <name>cite</name><paragraph>Element cite is a member of element group <parent>inline</parent> and is formed from complex type <parent>cite-type</parent>. This element is intended to contain text begging a citation. <process>The refer attribute is REQUIRED as it MUST point to the id attribute of a &lt;<x/>citation&gt; in the same &lt;<x/>markup&gt; section of the document.</process> The refer attribute on this element <process>MAY</process> act as a fragment URI to send users to the location of the targeted &lt;<x/>citation&gt; element in the session.</paragraph><example>&lt;<x/>cite refer=&#34;SAFE&#34;&gt;Footnote 1&lt;<x/>cite&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:simpleContent> <xs:restriction base="cite-type"> <xs:minLength value="1"/> <xs:whiteSpace value="collapse"/> </xs:restriction></xs:simpleContent></xs:complexType></xs:element><xs:element name="emphasis" type="inline-type"> <xs:annotation> <xs:documentation> <name>emphasis</name><paragraph>Element emphasis is a member of element group <parent>inline</parent> and is formed from complex type <parent>inline-type</parent>. This tag indicates the text it contains is more important than other text of the same context.</paragraph><example>&lt;<x/>emphasis&gt;This is emphasized text.&lt;<x/>/emphasis&gt;</example></xs:documentation></xs:annotation></xs:element><xs:complexType name="identifier-type"> <xs:annotation> <xs:documentation> <name>identifier-type</name><paragraph>Complex type identifier-type is for representing element &lt;<x/>identifier&gt;.</paragraph></xs:documentation></xs:annotation><xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute ref="refer" use="required"> <xs:annotation> <xs:documentation>refer</xs:documentation></xs:annotation></xs:attribute><xs:attributeGroup ref="core-attrs-uri"> <xs:annotation> <xs:documentation>core-attrs-uri</xs:documentation></xs:annotation></xs:attributeGroup></xs:extension></xs:simpleContent></xs:complexType><xs:element name="identifier"> <xs:annotation> <xs:documentation> <name>identifier</name><paragraph>Element identifier is a member of element group <parent>inline</parent> and is formed from complex type <parent>identifier-type</parent>. This element is intended to provide a text label that describes some other element. This element has a <process>REQUIRED</process> attribute of refer so that it may refer to the id of the element it is attempting to describe.</paragraph><example>&lt;<x/>identifier refer=&#34;elementID&#34;&gt;A reference to an specific point in the &lt;<x/>markup&gt;.&lt;<x/>/identifier&gt;</example></xs:documentation></xs:annotation><xs:complexType> <xs:simpleContent> <xs:restriction base="identifier-type"> <xs:minLength value="1"/> <xs:whiteSpace value="collapse"/> </xs:restriction></xs:simpleContent></xs:complexType></xs:element><xs:element name="quote" type="inline-type"> <xs:annotation> <xs:documentation> <name>quote</name><paragraph>Element quote is a member of element group <parent>inline</parent> and is formed from complex type <parent>inline-type</parent>. This element indicates the content it contains is a quotation.</paragraph><example>&lt;<x/>quote&gt;Why minify assets and not the markup?&lt;<x/>/quote&gt;</example></xs:documentation></xs:annotation></xs:element><xs:element name="format" type="format-type"> <xs:annotation> <xs:documentation> <name>format</name><paragraph>Element format is a member of element group <parent>inline</parent> and is formed from complex type <parent>format-type</parent>. The format tag is a special tag. This is the only tag in the entire MML tag set that is deliberately intended to provide no semantic data. This tag is available to provide access to the core attributes without imposing semantic considerations. A session author <process>MAY</process> need to apply style or a uri attribute to some text that is otherwise no different than the text around it. This is also the only inline tag that <process>MAY</process> contain a child tag.</paragraph><example>&lt;<x/>format style=&#34;cars:subscript&#34;&gt;Normal text with a different &lt;<x/>format role=&#34;notation&#34;&gt;presentation&lt;<x/>/format&gt;.&lt;<x/>/format&gt;</example></xs:documentation></xs:annotation></xs:element><xs:element name="strong" type="inline-type"> <xs:annotation> <xs:documentation> <name>strong</name><paragraph>Element strong is a member of element group <parent>inline</parent> and is formed from complex type <parent>inline-type</parent>. This tag indicates the content it contains is begging attention regardless of the importantce or relevance of the content in its given context.</paragraph><example>&lt;<x/>strong&gt;Ouch!&lt;<x/>/strong&gt;</example></xs:documentation></xs:annotation></xs:element><xs:element name="title" type="inline-type"> <xs:annotation> <xs:documentation> <name>title</name><paragraph>Element title is a member of element group <parent>inline</parent> and is formed from complex type <parent>inline-type</parent>. This element indicates either a person&#39;s official title or the title of a work.</paragraph><example>&lt;<x/>title&gt;Mail Markup Language&lt;<x/>/title&gt;</example></xs:documentation></xs:annotation></xs:element><xs:annotation> <xs:documentation> <work-cited> <title>References</title><work-cited> <title>CSS</title><paragraph>Bos B, Celik T, Hickson I, Lie H. &#34;Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification&#34;, W3C Candidate Recommendation, W3C, Stanford, Opera, July 2007. http://www.w3.org/TR/CSS21/</paragraph></work-cited><work-cited> <title>Format</title><paragraph>Crocker D. &#34;Standard for the Format of ARPA Internet Text Messages&#34;, University of Delaware, August 1982. http://www.ietf.org/rfc/rfc822.txt</paragraph><paragraph>Resnick P. &#34;Internet Message Format&#34;, RFC 2822, Qualcomm, April 2001. http://www.ietf.org/rfc/rfc2822.txt</paragraph></work-cited><work-cited> <title>HTML5</title><paragraph>Hickson I. &#34;HTML 5&#34;, WHATWG Draft Recommendation, WHATWG, August 2008. http://whatwg.org/html5/</paragraph></work-cited><work-cited> <title>HTTP</title><paragraph>Fielding R, Gettys J, Mogul J, Frystyk H, Masinter L, Leach P, Berners-Lee T. &#34;Hypertext Transfer Protocol -- HTTP/1.1&#34;, RFC 2616, UC Irvine, Compaq, W3C, MIT, Xerox, Microsoft, June 1999. http://www.ietf.org/rfc/rfc2616.txt</paragraph></work-cited><work-cited> <title>IANA</title><paragraph>Reynolds J, Postel J. &#34;Assigned Numbers&#34;, STD 2, RFC 1700, USC/Information Sciecnes Institut , October 1994. http://www.ietf.org/rfc/rfc1700.txt</paragraph></work-cited><work-cited> <title>IMAP</title><paragraph>Crispin M. &#34;Internet Message Access Protocol, Version 4rev1&#34;, RFC 3501, University of Washington, March 2003. http://www.ietf.org/rfc/rfc3501.txt</paragraph></work-cited><work-cited> <title>KAON</title><paragraph>Gabel T, Sure Y, Voelker J. &#34;Kaon -- An Overview: Karlsruhe Ontology Management Infrastructure&#34;, University of Karlsruhe, April 2004. http://kaon.semanticweb.org/main_kaonOverview.pdf</paragraph></work-cited><work-cited> <title>Keywords</title><paragraph>Bradner S. &#34;Key words for use in RFCs to Indicate Requirement Levels&#34;, RFC 2119, Harvard University, March 1997. http://www.ietf.org/rfc/rfc2119.txt</paragraph></work-cited><work-cited> <title>MIME</title><paragraph>Freed N, Borenstein N. &#34;Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies&#34;, RFC 2045, Innosoft, First Virtual, November 1996. http://www.ietf.org/rfc/rfc2045.txt</paragraph><paragraph>Freed N, Borenstein N. &#34;Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types&#34;, RFC 2046, Innosoft, First Virtual, November 1996. http://www.ietf.org/rfc/rfc2045.txt</paragraph><paragraph>Moore K. &#34;MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text&#34;, RFC 2047, University of Tennessee, November 1996. http://www.ietf.org/rfc/rfc2047.txt</paragraph><paragraph>Nelson S, Parks C, Mitra. &#34;The Model Primary Content Type for Multipurpose Internet Mail Extensions&#34;, RFC 2077, LLNL, NIST, WorldMaker, January 1997. http://www.ietf.org/rfc/rfc2077.txt</paragraph><paragraph>Freed N, Klensin J. &#34;Media Type Specifications and Registration Procedures&#34;, RFC 4288, Sun Microsystems, December 2005. http://www.ietf.org/rfc/rfc4288.txt</paragraph><paragraph>Freed N, Klensin J. &#34;Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures&#34;, RFC 4289, Sun Microsystems, December 2005. http://www.ietf.org/rfc/rfc4289.txt</paragraph></work-cited><work-cited> <title>Namespaces</title><paragraph>Bray T, Hollander D, Layman A, Tobin R. &#34;Namespaces in XML 1.0 (Second Edition)&#34;, W3C Recommendation, Textuality, Contivo Inc, Microsoft, Univerity of Edinburgh and Markup Technology Ltd, August 2006. http://www.w3.org/TR/REC-xml-names/</paragraph></work-cited><work-cited> <title>OWL</title><paragraph>McGuinness D, Harmelen F. &#34;OWL Web Ontology Language Overview&#34;, W3C Recommendation, Stanford University, Vrije Universiteit, February 2004. http://www.w3.org/TR/owl-features/</paragraph></work-cited><work-cited> <title>POP3</title><paragraph>Myers J, Rose M. &#34;Post Office Protocol - Version 3&#34;, RFC 1939, Carnegie Mellon, Dover Beach Consulting Inc, May 2006. http://www.ietf.org/rfc/rfc1939.txt</paragraph></work-cited><work-cited> <title>RDF</title><paragraph>Klyne G, Carroll J, McBride B. &#34;Resource Description Framework (RDF): Concepts and Abstract Syntax&#34;, W3C Recommendation, Nine by Nine, Hewlett Packard Labs, February 2004. http://www.w3.org/TR/rdf-concepts/</paragraph></work-cited><work-cited> <title>SAFE</title><paragraph>Cheney A. &#34;SAFE (Server-side Asynchronous Framework Execution) Scripting Method&#34;, Sabre Inc., 5 Aug 2009.</paragraph></work-cited><work-cited> <title>SMTP</title><paragraph>Klensin J. &#34;Simple Mail Transfer Protocol&#34;, RFC 2821, AT&#38;T Laboratories, April 2001. http://www.ietf.org/rfc/rfc2821.txt</paragraph></work-cited><work-cited> <title>Symbolism</title><paragraph>Mead G, &#34;Mind, Self &#38; Society From the Stand-Point of A Social Behaviorist&#34;, University of Chicago Press, 1947. [BOOK]</paragraph></work-cited><work-cited> <title>URI</title><paragraph>Berners-Lee T, Fielding R, Masinter L. &#34;Universal Resource Identifiers (URI): Generic Syntax&#34;, RFC 3986, W3C/MIT, Day Software, Adobe Systems, January 2005. http://www.ietf.org/rfc/rfc3986.txt</paragraph><paragraph>Hoffman P, Masinter L, Zawinski J. &#34;The mailto URL Scheme&#34;, RFC 2368, Internet Mail Consortium, Xerox Corporation, Netscape Communications, July 1998. http://www.ietf.org/rfc/rfc2368.txt</paragraph><paragraph>Mealling M, Denenberg R. &#34;RFC3305 - Report from the Joint W3C/IETF URI Planning Interest&#34;, RFC 3305, W3C URI Interest Group, August 2002. http://www.ietf.org/rfc/rfc3305.txt</paragraph></work-cited><work-cited> <title>W3C</title><paragraph>Connolly D, Masinter L. &#34;The &#39;text/html&#39; Media Type&#34;, RFC 2854, W3C, AT&#38;T, June 2000. http://www.ietf.org/rfc/rfc2854.txt</paragraph></work-cited><work-cited> <title>W3C XML Schema</title><paragraph>Fallside D, Walmsley P. &#34;XML Schema Part 0: Primer Second Edition&#34;, W3C Recommendation, IBM, October 2004. http://www.w3.org/TR/xmlschema-0/</paragraph><paragraph>Walmsley P. &#34;Definitive XML Schema&#34;, Prentice Hall, December 2001. [BOOK]</paragraph></work-cited><work-cited> <title>WAI-ARIA</title><paragraph>Cooper M, Schwerdtfeger R, Seeman L, Pappas L. &#34;Accessible Rich Internet Applications (WAI-ARIA) Version 1.0&#34;, W3C Working Draft, W3C, IBM, UB Access, Society for Technical Communication, August 2008. http://www.w3.org/TR/wai-aria/</paragraph></work-cited><work-cited> <title>WCAG</title><paragraph>Caldwell B, Cooper M, Guarino R, Vanderheiden G. &#34;Web Content Accessibility Guidelines 2.0&#34;, W3C Candidate Recommendation, University of Wisconsin-Madison, W3C, Google Inc., Trace R&#38;D Center, April 2008. http://www.w3.org/TR/WCAG20/</paragraph></work-cited><work-cited> <title>XForms</title><paragraph>Boyer J. &#34;XForms 1.0 (Third Edition)&#34;, W3C Recommendation, IBM, October 2007. http://www.w3.org/TR/2007/REC-xforms-20071029/</paragraph></work-cited><work-cited> <title>XML</title><paragraph>Bray T, Paoli J, Sperberg-McQueen C, Maler E, Yergeau, F. &#34;Extensible Markup Language (XML) 1.0 (Fourth Edition)&#34;, W3C Recommendation, Textuality, Microsoft, W3C, Sun, August 2006. http://www.w3.org/TR/REC-xml/REC-xml-20060816.xml</paragraph></work-cited><work-cited> <title>XSL</title><paragraph>Berglund A. &#34;Extensible Stylesheet Language (XSL) Version 1.1&#34;, W3C Recommendation, IBM, December 2006. http://www.w3.org/TR/xsl/</paragraph></work-cited><work-cited> <title>XHTML</title><paragraph>Pemberton S, Austin D, Axelsson J, Celik T, Dominiak D, Elenbaas H, Epperson B, Ishikawa M, Matsui S, McCarron S, Navarro A, Peruvemba S, Relyea R, Schnitzenbaumer S, Start P. &#34;XHTML 1.0 The Extensible HyperText Markup Language (Second Edition)&#34;, W3C Recommendation, CWI, W3C, Grainger, Opera Software, Microsoft, Openwave Systems, Philips Electronics, Netscape/AOL, Panasonic, Applied Testing and Technology, WebGeek Inc., Oracle, SAP, Sony Ericsson, August 2002. http://www.w3.org/TR/xhtml1/</paragraph></work-cited><work-cited> <title>XHTML2</title><paragraph>Axelsson J, Birbeck M, Dubinko M, Epperson B, Ishikawa M, McCarron S, Navarro A, Pemberton S. &#34;XHTML 2.0&#34;, W3C Working Draft, Opera Software, x-port.net, Websense, W3C, Applied Testing and Technology, WebGeek Inc., CWI, July 2006. http://www.w3.org/TR/xhtml2/</paragraph></work-cited></work-cited><acknowledgements> <title>Acknowledgements</title><paragraph>I would like to thank all those wonder people who supported me, without which this would not have been possible. Some of those people are Dustin Askins, Don Hay, Craig Hoersten, David McCarty, Stephen Marshall, the technology and legal executives of Sabre, and my wife Melissa.</paragraph></acknowledgements> Mail Markup Language, MML, is a method of structuring, defining, and describing content and data in email for a variety of reasons. Please refer to http://mailmarkup.org for more information. First implementation begun by Austin Cheney on 12 October 2007. </xs:documentation></xs:annotation></xs:schema>
