any

The use of xs:any makes it necessary to map content for which we have no schema.

The example below includes two marked-up 'parts', and the same content represented as an HTML table.

See also:
http://www.w3.org/MarkUp/Group/
<report xmlns="http://example.org/">
  <part>foo</part>
  <part>bar</part>
  
  <html xmlns="http://www.w3.org/1999/xhtml" xml:id="html">           
    <table>
      <tr><td xml:lang="en">foo</td></tr>
      <tr><td>bar</td></tr>
    </table>
  </html>

</report>

The HTML content is here represented by an xs:any element from the 'xhtml' namespace, which may include attributes and arbitrarily nested elements.

<xs:schema targetNamespace="http://example.org/"
        xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

        <xs:element name="report">
                <xs:complexType>
                        <xs:sequence>
                                <xs:element name="part" type="xs:string" maxOccurs="unbounded"/>
                                <xs:any namespace="http://www.w3.org/1999/xhtml" processContents="skip"/>        
                        </xs:sequence>
                </xs:complexType>
        </xs:element>

</xs:schema>

Not having the schema to hand, Gloze regards any content as ambiguously ordered so adds all content to an rdf:Seq. This helps to distinguish attributes from elements; any properties not added to this sequence are therefore attributes. Elements with a single value (and no attributes) are added as literal properties (see 'tr').

The example also includes an xml:id defined to be of type xs:ID, regardless of the schema. This identifies the html resource, and is translated as a fragment identifier relative to the document base.

# Base: http://example.org/any.xml
@prefix ns1:     <http://example.org/def/> .
@prefix xs:      <http://www.w3.org/2001/XMLSchema> .
@prefix ns2:     <http://example.org/> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xs_:     <http://www.w3.org/2001/XMLSchema#> .
@prefix :        <#> .

_:b1  a       rdf:Seq ;
      rdf:_1  [ a       rdf:Statement ;
                rdf:object _:b2 ;
                rdf:predicate <http://www.w3.org/1999/xhtml#tr> ;
                rdf:subject _:b1
              ] ;
      rdf:_2  [ a       rdf:Statement ;
                rdf:object _:b3 ;
                rdf:predicate <http://www.w3.org/1999/xhtml#tr> ;
                rdf:subject _:b1
              ] ;
      <http://www.w3.org/1999/xhtml#tr>
              _:b2 , _:b3 .

:html
      a       rdf:Seq ;
      rdf:_1  [ a       rdf:Statement ;
                rdf:object _:b1 ;
                rdf:predicate <http://www.w3.org/1999/xhtml#table> ;
                rdf:subject :html
              ] ;
      <http://www.w3.org/1999/xhtml#table>
              _:b1 .

_:b2  a       rdf:Seq ;
      rdf:_1  [ a       rdf:Statement ;
                rdf:object _:b4 ;
                rdf:predicate <http://www.w3.org/1999/xhtml#td> ;
                rdf:subject _:b2
              ] ;
      <http://www.w3.org/1999/xhtml#td>
              _:b4 .

<>    ns2:report
              [ ns2:part "foo"^^xs_:string , "bar"^^xs_:string ;
                <http://www.w3.org/1999/xhtml#html>
                        :html
              ] .

_:b3  a       rdf:Seq ;
      rdf:_1  [ a       rdf:Statement ;
                rdf:object "bar" ;
                rdf:predicate <http://www.w3.org/1999/xhtml#td> ;
                rdf:subject _:b3
              ] ;
      <http://www.w3.org/1999/xhtml#td>
              "bar" .

_:b4  rdf:value "foo"@en .

If a schema is available for the wild-card element, then it may be referenced from within the XML instance document using an xsi:schemaLocation or xsi:noNamespaceSchemaLocation attribute. This can appear in the document element or on the wild-card element itself.


Generated on Mon Jun 18 16:02:37 2007 for Gloze by  doxygen 1.5.0