OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RelaxNG problem about section 7.4. Restrictions on interleave

[ Lists Home | Date Index | Thread Index ]

  Okay in the absence of an answer to my subscription request and
mail to the RelaxNG list 2 weeks ago, I'm sorry to bounce this problem
to XML-Dev, but I see no other channel to discuss this. If someone
has the fortunate access to a RelaxNG list open for discussion feel
free to act as a gateway :-\

  To get to the core of the problem: Section 4.7 defines some 
restriction in the composition of interleaves:
  http://www.oasis-open.org/committees/relax-ng/spec-20011203.html#interleave-restrictions
  "there must not be a name that belongs to both the name class of an
  element pattern referenced by a ref pattern occurring in p1 and the name
  class of an element pattern referenced by a ref pattern occurring in p2"

  when p1 and p2 are two children of an interleave pattern.
Now the name class definition is provided in the preceeding section 7.3
where name class equivalence is defined to detect duplicate attribute

  "there must not be a name that belongs to both the name class of an
  attribute pattern occurring in p1 and the name class of an attribute
  pattern occurring in p2. A pattern p1 is defined to occur in a pattern
  p2 if:
    - p1 is p2, or
    - p2 is a choice, interleave, group or oneOrMore element and p1
      occurs in one or more children of p2."

  So one would expect identical name to be identical nameclasses.
However, both the Relax NG tutorial and the test suite exhibit
RelaxNG schemas like 
-----
    <interleave>
      <text/>
      <optional>
	<element name="span">
	  <attribute name="class">
	    <value>givenName</value>
	  </attribute>
	  <text/>
	</element>
      </optional>
      <optional>
	<element name="span">
	  <attribute name="class">
	    <value>familyName</value>
	  </attribute>
	  <text/>
	</element>
      </optional>
    </interleave>
-----
and
-----
<element xmlns="http://relaxng.org/ns/structure/1.0"; name="foo">
  <mixed>
    <element name="bar">
      <empty/>
    </element>
    <element name="bar">
      <empty/>
    </element>
    <element name="bar">
      <empty/>
    </element>
  </mixed>
</element>
-----

   mixed being converted first to an interleave with <text/> and 
optional being converted first to a choice with <empty/> the rules
expressed in 7.4 should apparently flag those as in error because 
reusing duplicate nameclasses for "span" and "bar" (without namespaces).
   And in the case fully qualified name can't be counted as nameclasses
how does 7.3 prevents attribute duplication then ?

  If someone has an answer, I'm interested !

Daniel

-- 
Daniel Veillard      | Red Hat Network https://rhn.redhat.com/
veillard@redhat.com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS