<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>4135</bug_id>
          
          <creation_ts>2007-01-02 18:17:26 +0000</creation_ts>
          <short_desc>Microsoft &quot;schema&quot; test set, schU1 (circular redefines)</short_desc>
          <delta_ts>2010-06-04 16:04:54 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>XML Schema Test Suite</product>
          <component>Microsoft tests</component>
          <version>2006-11-06</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>disputedSpec</keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Kay">mike</reporter>
          <assigned_to name="Henry S. Thompson">ht</assigned_to>
          <cc>cmsmcq</cc>
          
          <qa_contact name="XML Schema Test Suite mailing list">public-xml-schema-testsuite</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>13325</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2007-01-02 18:17:26 +0000</bug_when>
    <thetext>In the Microsoft &quot;schema&quot; test set, test

   &lt;test group=&quot;schU1&quot; name=&quot;schU1&quot;/&gt;

there are two schema documents, each of which redefines the other. The metadata indicates that this is considered valid.

I can&apos;t find an explicit ban on circular redefines. However, I believe there is an implicit ban. XML Schema Part 1 Schema Representation Constraint: Redefinition Constraints and Semantics states:

If the ·actual value· of the schemaLocation [attribute] successfully resolves [then] it resolves to [something which] corresponds to a &lt;schema&gt; element information item in a well-formed information set, which in turn corresponds to a valid schema.

In the presence of circular redefines, I don&apos;t believe that this rule is decideable. You can&apos;t determine whether the information set corresponds to a valid schema without processing the xs:redefines, and this leads to infinite regress.

(Perhaps this is wriggling. The same argument could be used to disallow circular xs:include. However, it&apos;s relatively easy to find an algorithm for determining that either all the xs:include directives in a cycle are valid, or none of them are. Because of the special semantics of xs:redefine, it&apos;s far less clear that such an algorithm exists in this case.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13431</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2007-01-11 00:14:29 +0000</bug_when>
    <thetext>*** Bug 4134 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13895</commentid>
    <comment_count>2</comment_count>
    <who name="Zafar Abbas">zafara</who>
    <bug_when>2007-02-02 19:37:34 +0000</bug_when>
    <thetext>Agreed that this test should not be published as a compliance test. We are
following up with the WG to determine the process of updating the test suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31341</commentid>
    <comment_count>3</comment_count>
    <who name="Henry S. Thompson">ht</who>
    <bug_when>2010-01-29 15:42:25 +0000</bug_when>
    <thetext>Looks to me like the WG needs to rule on this: does the spec. allow circular 
redefines, or not?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35972</commentid>
    <comment_count>4</comment_count>
    <who name="C. M. Sperberg-McQueen">cmsmcq</who>
    <bug_when>2010-06-04 16:04:54 +0000</bug_when>
    <thetext>One problem here is the parallel to circular includes.  The spec neither explicitly licenses nor explicitly forbids either circular inclusion nor circular redefinition, and implementations differ in whether they allow them or not.

The interpretation of circular include as legal seems to depend on the idea that there is a fixed-point semantics for inclusion under which circular inclusions are perfectly well defined.

The same sort of fixed-point semantics can be applied to circular redefine in at least some cases.  Many people seem to shy away from this as too horrible to contemplate.

But if the spec is assumed to have silently assumed a fixed-point semantics for the one, then why not for the other?</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>