Schema that includes the redefinitions for USLM/XHTML tables. or element, that changes the context. * The @temporalId attribute is assigned a changeable, human-meaningful, identifier. Like the @name attribute, the @temporalId will vary with time. For this reason, the @temporalId is computed each time a document is extracted from the repository, based on the point-in-time requested, rather than being statically stored with the text in the repository. The @temporalId is specified to be nominally unique within the document to which the element belongs. The @temporalId is composed by concatenating the @temporalId of the element's parent, if existing (or the parent element's name if the @temporalId does not exist), "_", and the element's @value. For example, paragraph 2 of subsection (a) of section 1 should have the @temporalId of "s1_a_2". ** Referencing Model ** All references are modeled as relative URLs. References are made to a logical rather than a physical hierarchy that starts always from the jurisdiction and reaches down to individual provisions within a bill, resolution, or other Legislation. References do not predict or expect any particular document partitioning. It is the intent of the URL handler to map the logical hierarchy to any specific physical hierarchy. The highest level of the hierarchy is always the jurisdiction code, specified using the ISO 3166-1 country code and optionally followed by a dash and a lower level jurisdiction code. For the U.S. Federal Government, the jurisdiction code is "us". Lower levels of the hierarchy should use an abbreviated prefix or a numeric/ alphabetic entry to identify the target. Each level in the reference is separated with the "/" in a hierarchy. For instance, Title 5 is expressed as "/us/usc/t5" while Pub. L. 111-314 is expressed as "/us/pl/111/314". When a URL is extended to within a document, the document hierarchy is expressed in an abbreviated form as in "/us/usc/t5/s101" or "/us/pl/111/314/s1". To build this URL, append the reference to the document with "/" + the level designators. So a reference to "title 2 of division 3 of public law 113-314" would be "/us/pl/111/314/d3/t2". A language-neutral reference does not include a language code. To create a reference to a specific language version of the document, include a language identifier at the nominal document level following a "!" symbol. For instance, to specify a reference to section 101 the English version of title 51, the reference would be "/us/usc/t51!eng/s101". To make a reference to a version that is operational at a specific point in time, include a date specification at the nominal document level following a "@" symbol ("at" the time of). For instance, to specify a reference to section 101 of Title 51 on 1 February, 2013, the reference would be "/us/usc/t51@2013-02-01/s101". When including both a language and a time specification, place the language specification ahead of the time specification. For instance to combine both examples above, the result would be "/us/usc/t51!eng@2013-02-01/s101". ]]> element, to be given a type specification. If the @type attribute is not specified, then the default type is "bag". The type values are inspired by the Resource Descriptor Framework (RDF). ]]> level or lower, but the model is general enough that it can be applied anywhere in the level hierarchy. ]]> level is suppressed when calculating any @temporalId contained within. Secondly, when dealing with sections which are numbered as a sequence without regard to the upper levels, then the upper levels are suppressed from the computation of the @temporalId. Some examples: * "s2" - section 2 in the main part of the document * "schedule_s2" - section 2 in the schedule * "pt2_d1" - division 1 of part 2 in the main part of the document The @temporalId attribute is optional. ]]> or element, that changes the context. The @identifier attribute is optional. ]]> . There is a rough equivalence between an element of a base class with a @role attribute and a derived class in the schema, although this equivalence is not explicit. For example is roughly equal to . When transforming XML to HTML, the @role attribute should be appended to the element name using an "_" underscore and used as the first value in the HTML @class attribute. If desired, the proposed XHTML @role attribute can be computed as either the XML @role attribute or, in the absence of the XML @role attribute, the XML element name. For example: =>
=>
This approach is easily reversible. ]]> and elements can use the reference group. All attributes are optional. ]]> element, then the referencing element builds on top of that reference, acquiring its attributes as default values (which may be overridden by local values). This is a recursive structure; an element may, through the @idref attribute, point to an element which itself builds on another element, and so on. This is to support the complex referencing sometimes found in legislation. ]]> and elements. ]]> , , and elements. ]]> element, , and elements are allowed in the ToC or index 1 or more times. ]]> element is a primitive element to be used to mark or denote a spot in the text. It can be used in the areas or anywhere else where an element is expected. The element contains no text. ]]> element is a primitive element to be used within areas or within any other areas which can accept inline content. ]]> element is a primitive element to be used anywhere where elements are permitted including within elements or anywhere where elements have been explicitly permitted. ]]> element is a primitive element to be used anywhere where a very general content model is desired, including within other elements. ]]> ... is the enclosing tag * is a required child * [] is an optional child * []? is a sequence of zero or one child * []* is a sequence of zero or more children * | is either child1 or child2 * [|] is either child1 or child2 or neither * [|]* is a sequence of zero or more child1s or child2s in no particular pattern Basic Model: * [][][
][][][]* * [|]* * [||]+ * [?