XSD elements with HTML5 markup

To: All,

As part of the development of a scientific standard, I have been developing
CytometryML (www.cytometryml.org <http://www.cytometryml.org> ). It would be
very useful if I could employ standard HTML5 markup elements: <p>, <h1>,
<h2>,<h3>, etc. with CSS. Fortunately, a schema for XHTML5 exists (Ishacian,
O., "A W3C XML Schema for XHTML5., Corresponds to W3C Working Draft 29 March
2012". Publisher Pixware SARL,
<http://grepcode.com/file/repo1.maven.org/maven2/com.googlecode.l10n-maven-p
lugin/l10n-maven-plugin/1.5/xhtml5.xsd> (2012).) I believe that the use of
defaultOpenContent elements in this XHTML5 schema and in my schema should
make it possible to interleave elements from the XHTML5 schema with those of
a second schema in a manner that the elements of the XHTML5 schema will be
skipped and thus invisible to the parser for this second schema and the
elements of the second schema will be invisible to the parser of the XHTML5
schema. A representative of the help desk at oXygen recommended that I
contact you on validity of this use of the defaultOpenContent elements. I
have attached a ZIP file that contains the relevant schemas and a paper that
describes its potential use.

defaultOpenContent element from: the XHTML5 schema:

<defaultOpenContent mode="interleave">
    <any namespace="##other" processContents="skip"/>
</defaultOpenContent>

"##other" refers to any schema other than the XHTML5 schema.

defaultOpenContent element from: the second schema (address_org):

<defaultOpenContent mode="interleave">
      <any namespace="http://www.w3.org/1999/xhtml" processContents="skip"/>
</defaultOpenContent>

http://www.w3.org/1999/xhtml refers the elements XHTML5 schema, which are
the only ones that need to be ignored by the second schemas parser.

For both defaultOpenContent elements, the meaning of the attribute value,
"skip" is crucial to using both sets of elements with no interaction


Definitions of Skip


  <!-- ================================================== -->

If it is skip, the schema processor performs no validation whatsoever, and
does not attempt to find a schema document associated with the wildcard's
namespace. The replacement elements must, however, be well-formed XML and
must be in one of the namespaces allowed by the wildcard (Walmsley, 2013,
12.7.1.2. Controlling the strictness of validation).

IBM DeveloperWorks


Listing 16. Schema snippet - CD entry using open content

<xs:complexType name="CatalogEntry">
  <xs:openContent mode="interleave">
    <xs:any namespace="##any" processContents="skip"/>
  </xs:openContent>
  <xs:sequence>
    <xs:element name="artist" type="xs:string"/>
    <xs:element name="album" type="xs:string"/>
    <xs:element name="price" type="xs:decimal"/>
    <xs:element name="release_date" type="xs:dateTime"/>
  </xs:sequence>
  <xs:attribute name="id" type="xs:string"/>
</xs:complexType>
 
<xs:element name="cd" type="tns:CatalogEntry"/>

In  <http://www.ibm.com/developerworks/library/x-xml11pt3/#listing16>
Listing 16, the complex type definition contains a sequence of four child
elements that are explicitly defined. In addition, the <xs:openContent>
element allows elements from any namespace to appear anywhere within these
child elements.

From: XML Schema 1.1, Part 3: An introduction to XML Schema 1.1

Example

<xs:complexType name="name">

  <xs:openContent>

    <xs:any namespace="##other" processContents="skip"/>

  </xs:openContent>

  <xs:sequence>

    <xs:element name="given" type="xs:string"/>

    <xs:element name="middle" type="xs:string" minOccurs="0"/>

    <xs:element name="family" type="xs:string"/>

  </xs:sequence>

</xs:complexType>

A complex type definition that allows three explicitly declared child
elements, in the specified order (but not necessarily adjacent), and
furthermore allows additional elements of any name from any namespace other
than the target namespace to appear anywhere in the children.

From: W3C XML Schema Definition Language (XSD) 1.1 Part 1: Structures, W3C
Recommendation 5 April 2012

(http://www.w3.org/TR/xmlschema11-1/)

I believe that the above proves that I am correct and something (the parser)
needs to be fixed. In any event, I would greatly appreciate comments from
the experts to either 1) save me from my ignorance, 2) inform oXygen and the
parser developers that a change has to be made or 3) some combination of 1
and 2.

Thank you. 

Yours respectfully,

Robert (Bob) C. Leif, Ph.D.

 

Received on Thursday, 19 February 2015 04:13:22 UTC