<?xml version='1.0'?>
<?xml:stylesheet type='text/xsl' href='issues.xsl'?>
<issues version="$Id: issues.xml,v 1.31 2001-07-27 12:25:50-07 bear Exp bear $">

<header>
	The new issue process is now enforced.
	A issue can be raised and added to the issue list only if
	(1) at least three members are agreed to consider it an issue, or
	(2) it is a supplementary thing related to the previous decision of TC
	and need to be clarified.
</header>

<issue
	keyword="whiteSpaceInEmpty"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Should empty elements allow whitespace?</title>
	<description>
		<maillink href="200102/msg00003.html" >original post</maillink>
	</description>
	<proposal>
		<p><maillink href="200102/msg00003.html">
			proposals are also made in the original post.
		</maillink></p>
		<p><maillink href="200102/msg00020.html">
			clarification made by John Cowan.
		</maillink></p>
	</proposal>
	<resolution>
		<p>
			Voted unanimously to resolve this issue by
			allowing elements with no declared children tp have whitespace.
		</p>
	</resolution>
</issue>

<issue
	keyword="differenceName"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Name of "difference" element</title>
	<description>
		<maillink href="200102/msg00004.html">
			The original post
		</maillink>
	</description>
	<proposal>
		<p>
			"except" and "butNot" by jjc.
			TC is open to other suggestions.
		</p>
	</proposal>
	<resolution>
		<p>
			TC's general feeling was, there is no good reason
			to change it. On 5/31/2001, TC has decided to close this issue
			without any action until someone bring up a new material.
		</p>
	</resolution>
</issue>

<issue
	keyword="xmlBase"
	originator="jjc@jclark.com"
	status="resolved">
	<title>xml:base support</title>
	<description>
		<maillink href="200102/msg00005.html">
			The original post
		</maillink>
	</description>
	<proposal>
		any decision was postponed until xml:base
		gets REC status.
	</proposal>
	<resolution>
		<p>
			In 2001/06/28, TC decided that RELAX NG processors should honor xml:base.
		</p>
	</resolution>
</issue>

<issue
	keyword="wildcardPattern"
	originator="jjc@jclark.com"
	status="resolved">
	<title>add wildcard pattern</title>
	<description>
		<maillink href="200102/msg00006.html">
			The original post
		</maillink>
	</description>
	<proposal>
		<p>
			the original post suggests to introduce syntax sugars
			to match frequently used wildcard patterns. Namely,
		</p>
		<olist>
			<item>
				Add a pattern that matches a single element,
				regardless of its name, attributes and children.
			</item>
			<item>
				Add a pattern that matches anything:
				any attributes and any content.
			</item>
		</olist>
		<p>
			Some concerns that whether
			this was important enough to be worth a special syntactic
			abbreviation. No conclusion was reached.
		</p>
	</proposal>
	<resolution>
		<p>
			On 5/31/2001, TC decided to drop this feature for ver.1.
			Reasons that mentioned are
			(1) it's not a good practice so it's good to keep it slightly cumbersome,
			(2) we don't lose the expressiveness of RELAX NG,
			(3) it's less frequently used,
			(4) and adding it at the later moment is easier
			    than dropping it at the later moment.
		</p>
	</resolution>
</issue>

<issue
	keyword="globalAttrName"
	originator="jjc@jclark.com"
	status="resolved">
	<title>syntax of "global" attribute on "attribute" element</title>
	<description>
		<maillink href="200102/msg00007.html">
			The original post
		</maillink>
	</description>
	<proposal>
		<p>
			jjc suggests form="prefixed|unprefixed" or 
			form="qualified|unqualified" (the same as XML Schema).
		</p>
		<p>
			Just as a possibility,
			jjc also mentioned to split &lt;attribute&gt; to
			two different elements, just like we did for the parent attribute
			of the &lt;ref&gt; element.
		</p>
	</proposal>
	<resolution>
		<p>
			On 5/31/2001, TC decided to close this issue with no-action-required.
		</p><p>
			James reported that the semantics of the global attribute can be
			achieved by using the name element, instead of the name attribute.
			So TC has decided to remove the global attribute from the attribute pattern
			(7/12/2001).
		</p>
	</resolution>
</issue>

<issue
	keyword="splitInclude"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Split "include" element to two different elements</title>
	<description>
		<maillink href="200102/msg00008.html">
			The original post
		</maillink>
	</description>
	<circumstance>
		On April,4,2001 telcon, most people felt it was
		desirable to split, if a good pair of replacement names could be
		found.
	</circumstance>
	<resolution>
		On 5/31/2001, pattern-level inclusion is renamed
		to &lt;externalRef&gt;.
	</resolution>
</issue>

<issue
	keyword="grammarName"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Name of "grammar" element</title>
	<description>
		<maillink href="200102/msg00009.html">
			The original post.
		</maillink>
	</description>
	<resolution>
		<p>
			Murata-san reported that RELAX Namespace will use
			&lt;framework&gt; for its root element. Therefore,
			RELAX NG will keep using the name &lt;grammar&gt;.
		</p>
	</resolution>
</issue>

<issue
	keyword="parameterizedPattern"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Parameterized patterns</title>
	<description>
		<maillink href="200102/msg00010.html">
			The original post.
		</maillink>
	</description>
	<proposal>
		 From the beginning, jjc alludes to taking no action with this issue.
	</proposal>
	<resolution>
		Voted unanimously not to include them in the first version (Apr,4,2001 telcon).
		The feeling was that this was on the wrong side of the 80/20 divide
		for the first version.
	</resolution>
</issue>

<issue
	keyword="builtinList"
	originator="jjc@jclark.com"
	status="resolved">
	<title>List of simple datatypes</title>
	<description>
		<maillink href="200102/msg00011.html">
			The original post.
		</maillink>
	</description>
	<circumstance>
		<p>
			This issue is merged into the 
			<link href="#datatype">"datatype and identity constraint"</link>
			issue.
		</p>
	</circumstance>
	<resolution>
		<p>
			Decided to introduce &lt;oneOrMoreToken&gt; and &lt;zeroOrMoreToken&gt; patterns
			to produce list.
		</p>
	</resolution>
</issue>

<issue
	keyword="versioning"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Versioning</title>
	<description>
		<maillink href="200102/msg00012.html">
			The original post.
		</maillink>
	</description>
	<proposal>
		<p>
			(a) Put a version in the RELAX NG namespace URI (by jjc)
		</p>
		<p>
			(b) Use a version attribute on the root element (by jjc)
		</p>
	</proposal>
	<references>
		<input author='Eric van der Vlist'>
			<p>He suggests to have both (a) and (b)</p>
		</input>
		<input author='John Cowan'
				href='http://lists.oasis-open.org/archives/trex/200102/msg00021.html'>
			<p>He suggests to use FPI (kk: kind of URN?)</p>
		</input>
	</references>
	<resolution>
		<p>
			In the 5/3 telecon, we've decided to use a proposal (a).
			See <maillink href="200104/msg00052.html">the detail of this proposal</maillink>
		</p>
	</resolution>
</issue>

<issue
	keyword="MNrepeat"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Repeat M-N times</title>
	<description>
		<maillink href="200102/msg00017.html">
			The original post.
		</maillink>
	</description>
	<references>
		<input author='Josh Lubell'
				href='http://lists.oasis-open.org/archives/trex/200102/msg00036.html'>
			<p>He wants to have this because of his own experiences</p>
		</input>
		<input author="Kohsuke Kawaguchi">
			<p>
				He suggests that this feature can be provided outside of the core spec
				(as a pre-processor like tool).
			</p>
		</input>
		<p>
			TC is still not convinved whether this feature is imporant enough to be added.
		</p>
	</references>
	<resolution>
		<p>
			The decision is made (but tentatively) to drop this feature from version 1.
		</p>
	</resolution>
</issue>

<issue
	keyword="parentAttrOnRefElem"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Syntax of parent attribute on ref element</title>
	<description>
		<maillink href="200102/msg00018.html">
			The original post.
		</maillink>
	</description>
	<proposal>
		<p>
			James Clark proposed to change attribute name to more sutaible one,
			but none is suggested by anyone.
		</p>
		<p>
			John Cowan suggests adding optional "grammar" attribute to "ref" element
			and thereby introducing the ability to refer to any ancestor grammar.
		</p>
	</proposal>
	<resolution>
		<p><![CDATA[
			On 5/31/2001, TC decided to use <parentRef name="..."/> 
			instead of <ref name="..." parent="true"/>.
			So now we have <ref>,<externalRef>, and <parentRef>.
		]]></p>
	</resolution>
</issue>

<issue
	keyword="diffPattern"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Allow difference of patterns</title>
	<description>
		<maillink href="200102/msg00019.html">
			The original post.
		</maillink>
		<p>
			A comment from Jeni Tennison has re-opened this issue.
			Here is a quote from his post to relax-ng-comments:</p>
<pre>
<![CDATA[
I'd like to be able to restrict the contents of the xs:restriction
element based on its base attribute, but only for certain values. So
if its base attribute is "xs:decimal" then it could contain
xs:totalDigits but if it's "xs:string" then it can't, and so on.
However, if it's not a name in the 'xs' namespace, then I want to
allow any content.

Best would be to exclude all QName values with a particular namespace,
but XMLSchema-datatypes doesn't offer that as a facet (and therefore
RELAX NG doesn't have it as a parameter). I don't want to use the
'pattern' parameter to test the names because that would undermine the
namespace awareness of the schema. I thought I could create a pattern
that didn't match particular enumerated values, but I can't find a way
to do so.  What I'm looking for is something like:

<choice>
   <group>
      <attribute name="foo">
         <value>bar</value>
      </attribute>
      <element name="bar"><empty /></element>
   </group>
   <group>
      <attribute name="foo">
         <!-- not current RELAX NG -->
         <not>
            <value>bar</value>
         </not>
         <!-- /not current RELAX NG -->
      </attribute>
      <element name="baz"><empty /></element>
   </group>
</choice>

This use case would imply that the difference element would be useful
outside name classes as well.
]]>
</pre>
	</description>
	<proposal>
		<p>
			It is easy to implement validators if the use of
			<![CDATA[<difference> p1 p2 </difference>]]>
			is limited in such a way that both p1 and p2 matches one token
			and one token only (e.g., &lt;data>, &lt;value>, 
			choices of those things.)
		</p><p>
			So it looks like a good advancement in the functionality with a 
			very small cost.
			Do we want to have &lt;difference> in this restricted fashion?
		</p><p><![CDATA[
			Also, if we add <difference>, then we can (or should)
			also allow <not> P </not> as a syntax sugar of
		]]></p>
<pre><![CDATA[<difference><data type="string"/> P </difference>]]></pre>
	</proposal>
	<resolution>
		<p>
			TC has voted not to adopt the functionality (the original proposal
			of allowing &lt;difference&gt; to any patterns) for ver.1.0.
			But it is re-opened now.
		</p><p>
			For the problem pointed out by Jeni Tennison, TC has decided to adopt a new syntax
			based on <maillink href="200106/msg00259.html">James' proposal.</maillink>
			<link href="#exceptPattern">A new issue</link> related to this one is opened
			to further discuss this proposal (2001/06/28).
		</p>
	</resolution>
</issue>

<issue
	keyword="IdIdref"
	originator="kohsuke.kawaguchi@eng.sun.com"
	status="resolved">
	<title>ID/IDREF problem</title>
	<description>
		<maillink href="200102/msg00041.html">
			The original post.
		</maillink>
		<maillink href="200103/msg00017.html">
			Summarization/generalization by jjc.
		</maillink>
	</description>
	<circumstance>
		<p>
			<link href="#datatype">This issue is merged into datatype issue.</link>
		</p>
	</circumstance>
</issue>

<issue
	keyword="dropConcur"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Drop concur</title>
	<description>
		<maillink href="200103/msg00004.html">
			The original post.
		</maillink>
	</description>
	<proposal>
		jjc suggests to remove concur pattern from the spec by various reasons.
	</proposal>
	<resolution>
		Voted unanimously to drop concur pattern (Apr,5,2001 telcon).
	</resolution>
</issue>

<issue
	keyword="exclusion"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Add "exclusion" pattern</title>
	<description>
		<maillink href="200103/msg00005.html">
			The original post.
		</maillink>
	</description>
	<proposal>
		jjc suggests to add a pattern to model a tag-name based exclusion.
	</proposal>
	<resolution>
		TC has voted and decided not to include this feature in the first version.
		TC will revist this issue in the future.
		(author of this issue list is unaware of when this vote took place.)
	</resolution>
</issue>


<issue
	keyword="languageName"
	originator="mura034@attglobal.net"
	status="resolved">
	<title>name of the new language</title>
	<description>
		What will be the name of the new language?
		<maillink href="200104/msg00054.html">
			(The original post.)
		</maillink>
	</description>
	<proposal>
		<p>
			Various people sugges various names (including, but not limited to,
			TRELAX, TryRELAX, RELAXED, RELEX, REFLEX, RELAX XML Schema, TREELAX,
			RELAX 2, EXLAX, etc, etc.
		</p>
		<p>
			One of the concern is whether we should include "XML Schema" in
			the name.
		</p>
		<p>
			<b>Update(May,3rd):</b> jjc suggests "RELAX something" for various reasons
			(see minutes of May,3rd telecon). In response, "RELAX NG"
			(next generation, I guess) and RELAX++ are proposed.
			Other post-fixes are welcome.
		</p>
		<p>
			Names suggested after the telecon includes URELAX, iRELAX, and TRELAX.
			The editor feels that RELAX NG establishes some degree of popularity.
		</p>
	</proposal>
	<resolution>
		<p>
			We will use "RELAX NG" and its pronunciation will be "relaxing."
		</p>
	</resolution>
</issue>




<issue
	keyword="restrictStringUse"
	originator="mura034@attglobal.net"
	status="resolved">
	<title>restriction on use of string/data in pattern</title>
	<description>
		Some form of constraints on use of &lt;string&gt; or &lt;data&gt;
		pattern is necessary for validating processor to work correctly.
		(related posts
		<maillink href="200104/msg00020.html">
			[1]
		</maillink>
		<maillink href="200104/msg00021.html">
			[2]
		</maillink>).
	</description>
	<proposal>
		<p>
			The current spec already has several restrictions that
			prevents problematic situations.
		</p>
		<p>
			Some argues that the current restrictions still have
			something to be desired.
		</p>
	</proposal>
	<resolution>
		<p>
			TC decided to adopt the restriction proposed in
			<maillink href="200106/msg00198.html">the post of James Clark</maillink> (2001/06/21).
		</p>
	</resolution>
</issue>




<issue
	keyword="attrInAttr"
	originator="mura034@attglobal.net"
	status="resolved">
	<title>prohibits attribute/element pattern in attribute pattern</title>
	<description>
		<p>
		Currently, RELAX NG allows patterns like
		</p>
		<p>
			<![CDATA[
				<attribute name="foo"><attribute name="..." /></attribute>
			]]>
		</p>
		<p>
			<![CDATA[
				<attribute name="foo"><element name="..." /></attribute>
			]]>
		</p>
		<p>
			Should we explicitly prohibits them?
		</p>
		
		(original posts
		<maillink href="200104/msg00018.html">
			[1]
		</maillink>
		<maillink href="200104/msg00019.html">
			[2]
		</maillink>).
	</description>
	<circumstance>
		<p>
			Those malformed patterns cannot accept anything: any RELAX NG processors
			can safely replace those malformed patterns by &lt;notAllowed /&gt;
			without changing semantics.
		</p><p>
			So at least it doesn't confuse processors.
		</p>
	</circumstance>
	<proposal>
		<p>
			Murata-san suggests to "implementations SHOULD issue a warning" for a pattern that matches
			the following condition:
			that is, <![CDATA[<attribute> pattern that
			"directly or indirectly contain other <attribute> or <element> patterns"]]>
			after the normalization.
		</p>
	</proposal>
	<resolution>
		<p>
			In the conference call of 2001/06/14, we voted to make this
			situation as an error that must be reported by processors.
			One of the reasons was the lack of good use cases that make use of
			<![CDATA[<attribute>/<element> in <attribute>]]>
		</p>
	</resolution>
</issue>




<issue
	keyword="orderSignificance"
	originator="jjc@jclark.com"
	status="resolved">
	<title>redefinitions and order-significance</title>
	<description>
		<p>
			RELAX NG pattern is currently sensitive to the order of
			&lt;define&gt; element or order of &lt;include&gt; element
			because of the redefinition capability.
		</p>
		<p>
			However, this sensitivity can be removed by restricting redefinition to
			only under &lt;include&gt; element (like XML Schema).
			But this restriction also limits the expressiveness of RELAX NG.
		</p>
		<p>
			Should we introduce this restriction to make RELAX NG pattern order-insensitive language?
			Is this worth the cost of limiting language expressiveness?
		</p>
		
		(
		<maillink href="200104/msg00078.html">
			original posts
		</maillink>)
	</description>
	<proposal>
		<olist><item>
			<maillink href="200104/msg00078.html">
				The original post
			</maillink> proposes to <![CDATA[
			"require that <define> elements that redefine or
			combine with other definitions should go inside the <include> elements
			that includes the pattern that contains the original definition." ]]>
		</item><item>
			<maillink href="200105/msg00173.html">
				Another proposal made by jjc.
			</maillink>
			<ulist>
				<item>
					attach a priority to definitions to allow
					combination without order dependence (like xsl:template).
				</item>
				<item>
					prohibit applying "different kinds of combine for a
					single pattern".
				</item>
			</ulist>
		</item><item>
			<maillink href="200105/msg00228.html">
				The proposal #3 by jjc,
			</maillink>
				which is
			<maillink href="200105/msg00254.html">
				amended a bit.
			</maillink>
			<ulist>
				<item>
					combine="interleave"/"choice" can be used as status quo.
				</item><item>
					combine="group" cannot be used.
				</item><item>
					the functionality that implement the semantics of combine="replace" is introduced
					in order-insignificant way.
				</item>
			</ulist>
		</item></olist>
	</proposal>
	<circumstance>
		<p>
			One of the touchstone will be XHTML modularization. kk wrote
			that the proposal #1 does not work and #2 does with XHTML m12n.
		</p>
	</circumstance>
	<resolution>
		<p>
			The proposal #3 with its amendment is adopted.
		</p>
	</resolution>
</issue>



<issue
	keyword="duplicateAttributes"
	originator="jjc@jclark.com"
	status="resolved">
	<title>prohibiting duplicate attributes</title>
	<description>
		<p>
			RELAX NG allows patterns like
		</p>
		<pre><![CDATA[
<element name="joe">
    <attribute name="foo"> ... </attribtue>
    <attribute name="foo"> ... </attribtue>
</element>
		]]></pre>
		
		<p>
			Can we prohibit patterns like this? If so, how can we do that?
		</p>
		
		(
		<maillink href="200104/msg00081.html">
			the original post
		</maillink>)
	</description>
	<proposal>
		<p>
			<maillink href="200105/msg00015.html">The GNF normalization</maillink> can detect
			such a condition. However, since it is a time-consuming operation,
			it may not be suitable to mandate the enforcement of this constraint.
		</p><p>
			Murata-san proposed that "implementations MAY issue warning messages" by using the GNF normalization.
		</p>
		<p><![CDATA[
			Jjc proposed that for every <group> p1 p2 </group>,
			"the set of possible attribute
			names occuring in p1 must be disjoint from those occuring in p2."
			(The present author believes that the same restriction
			is necessary for <interleave/>.)
		]]></p><p>
			Another proposal made by M-san introduces a new primitive
			&lt;multipleAttributes&gt; NC P &lt;/multipleAttribuets&gt;
			that has the built-in "zero-or-more" semantics.
		</p>
	</proposal>
	<resolution>
		In the conference call of 2001/06/14, TC has voted to adopt JJC's proposal.
		See <maillink href="200106/msg00115.html">the algorithm</maillink>.
	</resolution>
</issue>



<issue
	keyword="datatypeOverlap"
	originator="mura034@attglobal.net"
	status="resolved">
	<title>Overlapping with XML Schema Part 2</title>
	<description>
		<p>
			XML Schema Part 2 has capability to
		</p>
		<olist>
			<item>create union of multiple types.</item>
			<item>create list of multiple types.</item>
			<item>assign a name to the type and refer to it by name.</item>
		</olist>
		<p>
			But our language is also capable of doing above three.
		</p><p>
			So if we use XML Schema Part 2 as the only datatype vocabulary,
			we should consider dropping some of the redundant capability.
			(That is, restricting choices of &lt;data&gt;s, for example).
		</p>
		
		(
		<maillink href="200104/msg00096.html">
			the original post
		</maillink>)
	</description>
	<proposal>
		<p>
			jjc suggests to close this with "no-action required" because
			he wants to keep a distance from XML Schema Part 2.
		</p>
	</proposal>
	<resolution>
		<p>
			We decided not to use the syntax of W3C XML Schema Part 2 for defining datatypes.
			Therefore, the overlap no longer exists.
		</p>
	</resolution>
</issue>



<issue
	keyword="nestedGrammar"
	originator="mura034@attglobal.net"
	status="resolved">
	<title>Prohibiting nested grammars</title>
	<description>
		<p>
			We currently allow &lt;grammar&gt; elements to be nested. That is,
			grammar can be used just like any other patterns.
		</p>
		<p>
			Murata-san wants to prohibit this because it may interfere with
			future namespace-based modularization (as currently seen in RELAX and XML Schema).
		</p>
		
		(
		<maillink href="200104/msg00105.html">
			the original post
		</maillink>)
	</description>
	<circumstance>
		<p>
			"Namespace-based modularization" means that one module is responsible for one namespace.
			In my personal opinion (and probably Murata-san's), this is vital for multi-lingual validation,
			where multiple schema languages cooperates to validate one document.
		</p>
		<p>
			Murata-san said he is willing to retract this if someone can convince him that
			nested grammar doesn't possibly interfere with such modularization.
		</p>
	</circumstance>
	<resolution>
		<p>
			Murata-san retracted his objection in 2001/6/7.
			This issue was then resolved as no-action-required.
		</p>
	</resolution>
</issue>


<issue
	keyword="datatype"
	originator="???"
	status="resolved">
	<title>Datatype and Identity Constraint</title>
	<description>
		<p>
			This issue is arose by merging several issues.
		</p>
		<p>
			The first objective was to introduce the identity constraint
			functionality in our new language.
			Then we've found that this issue is related to how our language
			treats datatypes.
		</p>
	</description>
	<circumstance>
		<p>
			It starts with a series of posts by jjc
			that describes possible features 
			<maillink href="200104/msg00110.html">
				[multipart key]
			</maillink>,
			<maillink href="200104/msg00111.html">
				[typed key]
			</maillink>,
			<maillink href="200104/msg00112.html">
				[scoped key]
			</maillink>,
			<maillink href="200104/msg00113.html">
				[multiple key symbol spaces]
			</maillink>, and
			<maillink href="200104/msg00114.html">
				[keys in element]
			</maillink>.
		</p>
		<p>
			Those posts are about possible features, but how those requirements
			affect the design is generally unclear.
			The editor believes that one thing that has developed
			in telcon is that we don't need any path expression if we abandon
			multipart keys.
		</p>
		<p>
			In 5/3 telcon, we've made some degree of consensus about the above
			requirements (see <maillink href="200105/msg00016.html">minutes</maillink>).
		</p>
		<p>
			After the telcon, jjc posts his two proposals.
		</p>
		<ulist>
			<item>
				<maillink href="200105/msg00037.html">"ID/IDREF strawman #1"</maillink>.
				This proposal is relatively simple, but leaves several problems unresolved.
				
				Firstly, key is not typed. So "1" and "01" is considered different even when
				the type is integer.
				
				Secondly, it doesn't work well with anonymous types. Datatype libraries have
				to provide a capability to test the equality of two types.
			</item>
			<item>
				<maillink href="200105/msg00041.html">"ID/IDREF strawman #2"</maillink>.
				This is also a relatively simple proposal. But it still has several problems.
				
				Firstly, it doesn't work well with anonymous types. This time, you have to
				use built-in types.
			</item>
		</ulist>
		<p>
			So now it is discovered that without greater involvement to datatypes,
			we can't use anonymous (or user-defined) types in key/keyref.
			This discovery leads to another proposal from jjc.
		</p>
		<ulist>
			<item>
			<p>
				<maillink href="200105/msg00106.html">"datatypes #1"</maillink>.
				This post proposes how to declare new datatypes under the control
				of our language and how to declare key/keyref constraint.
			</p><p>
				What's important here is "under the control of our language".
				RELAX NG allows datatype library(DTLIB) to use its own syntax
				to declare new types.
				But in this proposal, every DTLIB is required to use the syntax of 
				this proposal (to make type equivalence test possible).
			</p>
			</item>
			<item>
			<p>
				<maillink href="200105/msg00147.html">Datatypes #2</maillink>
				("the proposal of the day").
				Roughly speaking, this is a simplified version of "datatypes #1",
				which "I(jjc) hope will be able to command consensus."
			</p><p>
				The difference with the previous proposal is that this one
				doesn't have the concept of "derivation". That means
				you can't add facets to your type once you defined it.
			</p>
			</item>
		</ulist>
		<p>
			Kohsuke KAWAGUCHI also proposes the most simple version.
		</p>
		<ulist>
			<item>
			<p>
				<maillink href="200105/msg00186.html">"Back to the basic"</maillink>
				proposal. This one tries to mimic DTD's ID/IDREF capability.
			</p>
			</item>
		</ulist>
	</circumstance>
	<resolution>
		<p>
			The above "datatypes #2" proposal is adopted. We use the following syntax to define
			enumeration:
		</p>
<pre><![CDATA[
<choice>
  <token type="xsd:integer"> 5 </token>
  <token type="xsd:integer"> 2 </token>
</choice>
]]></pre>
		<p>
			And the following syntax to define a datatype:
		</p>
<pre><![CDATA[
<data type="xsd:integer">
  <param name="minInclusive"> 5 </param>
  <param name="maxExclusive"> 8 </param>
</data>
]]></pre>
		<p>
			For many other details, see the minutes of the conference call. (Not available at this moment.)
		</p>
	</resolution>
</issue>



<issue
	keyword="nsURI"
	originator="jjc"
	status="resolved">
	<title>Namespace URI of RELAX NG</title>

	<description>
		<p>
			We need a namespace URI for the new language.
		</p>
	</description>
	<proposal>
		<p>
			jjc suggests "http://relaxng.org/ns/m.n" where m.n is the version number.
		</p>
		<p>
			M-san suggets "http://relaxng.org/ns/something/m.n" so that
			we can accommodate related namespace URIs. For "something", jjc
			suggests "structure".
		</p>
	</proposal>
	<circumstance>
		<p>
			In the 5/31/2001 conference call, several persons speak in favor
			of HTTP-based URI.
		</p>
		<olist>
			<item>
				HTTP-based URI allows us to put something like RDDL document to
				the end point, which seems to be a general trend.
			</item>
			<item>
				If we'll take RELAX NG to ISO, then having an URI with "oasis" in it
				may be a little bit strange.
			</item>
		</olist>
		<p>
			Also, "core" is proposed along with "main" and "structure".
		</p>
	</circumstance>
	<resolution>
		<p>
			<code>http://relaxng.org/ns/structure/0.9</code> is choosen.
		</p>
	</resolution>
</issue>


<issue
	keyword="regularityConstraint"
	originator="mura034@attglobal.net"
	status="resolved">
	<title>Restrict patterns to the regular language</title>

	<description>
		<p>
			TREX allows the following pattern.
		</p>
<pre><![CDATA[
<oneOrMore>
  <element> ... </element>
  <attribute> ... </attribute>
</oneOrMore>
]]></pre>
		<p>
			In the computer science terminology, this is beyond the power of
			the "regular language". And therefore problematic for applications.
		</p><p>
			Shall we avoid this excessive expressiveness? If so, how?
		</p><p>
			<maillink href="200105/msg00139.html">The original post</maillink>
		</p>
	</description>
	<proposal>
		<p>
			In the above post, M-san suggests to restrict
			<![CDATA[<oneOrMore> and <zeroOrMore>]]> to either
		</p>
		<ulist>
			<item>
				not contain &lt;attribute&gt; pattern directly/indirectly, or
			</item>
			<item>
				patterns made of &lt;attribute&gt; and &lt;choice&gt; only.
			</item>
		</ulist>
		<p><![CDATA[
			jjc proposes the following restriction:
			"If a <oneOrMore> element has an <attribute> descendant, it must
			not have a <group> or <interleave> descendant."
		]]></p>
		<p><![CDATA[
			KK suggests the following restriction:
			"If <group> or <interleave> is used under <oneOrMore>, then it cannot
			contain any <attribute>."
		]]></p>
	</proposal>
	<resolution>
		<p>
			The TC decided to adopt the restriction by KK.
		</p>
	</resolution>
</issue>



<issue
	keyword="useOfQName"
	originator="Eric van der Vlist (vdv@dyomedea.com)"
	status="resolved">
	<title>Use of QNames</title>

	<description>
		<p>
			RELAX NG uses QName to
		</p>
		<olist>
			<item>designate datatypes,</item>
			<item>refer to element/attribute names, and</item>
			<item>accommodate QName datatype of W3C Schema Part2 </item>
		</olist>
		<p>
			But for some, use of QNames in this way is 
			something they want to avoid.
		</p><p>
			Can we avoid using QNames?
			If so, shall we avoid using QNames?
			If so, how?
		</p><p>
			<maillink href="200102/msg00014.html">The original post</maillink>
		</p>
	</description>
	<proposal>
		<p>
			Eric proposed to declare the prefix-URI mappings in another
			independent way, as follows:
		</p>
<pre><![CDATA[
<namespace prefix="e" uri="http://www.w3.org/2001/XMLSchema-datatype"/>
<data type="e:integer"/>
]]></pre>
		<p>
			Here is
			<maillink href="200102/msg00025.html">the original post</maillink>.
		</p><p>
			The editor believes Eric also had an alternative proposal, which
			write URIs every time, like this:
		</p>
<pre><![CDATA[
<data namespace="http://www.w3.org/2001/XMLSchema-datatype" type="integer"/>
]]></pre>
		<p>
			jjc suggests to introduce a new attribute "datatypeNamespace",
			which propagates like the "ns" attribute. This proposal will
			address the problem of using QNames for datatypes.
		</p>
		<p>
			Murata-san opposes the use of QNames and proposes the following
			<maillink href="200105/msg00355.html">alternative solutions</maillink>.
		</p>
		<p>
			Another proposal made by jjc utilizes &lt;div&gt; elements
			to declare namespaces.
		</p>
		<p>
			Several more proposals were also made. See the thread starting from
			<maillink href="200105/msg00272.html">here</maillink> for details.
		</p>
	</proposal>
	<circumstance>
		<p>
			Some people (including the present editor, for the full disclosure)
			don't like to use QName in values for some reasons, including:
		</p>
		<olist>
			<item>
				It interferes with canonicalization of XML.
			</item><item>
				It makes it impossible to change the prefix without any knowledge
				about the contents.
			</item>
		</olist>
		<p>
			On the other hand, QName is easier to write for humans,
			and less verbose. And some people think the use of QNames is unavoidable.
		</p>
		<p>
			Also, TC seems to have a consensus that 
			RELAX NG grammar should be able to be written
			without using XML Namespace,
			if the author prefers so (because for many people
			XML namespace is still a new technology.)
		</p>
	</circumstance>
	<resolution>
		<p>
			In 2001/06/07, TC has voted to retain the current status; that is, use @ns to
			specify the default namespace and allow element/attribute names to have QNames.
		</p>
	</resolution>
</issue>



<issue
	keyword="listPattern"
	originator="kohsuke.kawaguchi@eng.sun.com"
	status="resolved">
	<title><![CDATA[Introduce <list> pattern to replace <oneOrMoreToken>/<zeroOrMoreToken>]]></title>

	<description>
		<p>
			<![CDATA[ <oneOrMoreToken> and <zeroOrMoreToken> ]]> are adopted to make lists of strings possible.
			But it is discovered that a new pattern, namely &lt;list&gt;, can clone the semantics of
			&lt;***OrMoreToken&gt; patterns and simplify both implementations and the spec.
		</p><p>
			<maillink href="200105/00283.html">The original post</maillink>
		</p>
	</description>
	<proposal>
		<p>
			The above original post contains the semantics of &lt;list&gt; pattern.
		</p>
	</proposal>
	<circumstance>
		<p>
			&lt;***OrMoreToken&gt; patterns do not allow us to have something like "a list of 4 integers",
			which is possible under W3C XML Schema. This proposal makes the list capability of RELAX NG
			more expressive than W3C XML Schema.
		</p>
	</circumstance>
	<resolution>
		<p><![CDATA[
			On 5/31/2001, TC has decided to adopt this proposal and 
			removes <oneOrMoreToken> and <zeroOrMoreToken>.
		]]></p>
	</resolution>
</issue>



<issue
	keyword="symbolSpaceScope"
	originator="jjc@jclark.com"
	status="resolved">
	<title>Scope of key/keyref symbol spaces</title>

	<description>
		<p>
			Currently, the symbol spaces of key/keyref are global. So
			two independently-authored grammars may accidentaly use
			the same key name. Is there any solution to this?
		</p><p>
			<maillink href="200105/msg00351.html">The original post</maillink>
		</p>
	</description>
	<circumstance>
		<p>
			Sometimes, an author wants to refer to keys that another author
			wrote. That makes restriction difficult.
		</p>
		<p>
			TC is now waiting for the public comments.
		</p>
	</circumstance>
	<proposal>
		<olist>
			<item>
				Allow &lt;include&gt; to rename keys.
			</item>
			<item>
				Allow &lt;include&gt; to have a flag to ignore(localize)
				keys in the included pattern.
			</item>
			<item>
				Have some kind of explicit scoping for each key. (How?)
			</item>
		</olist>
	</proposal>
	<resolution>
		<p>
			TC has decided to adopt
			<maillink href="200106/msg00200.html">the proposal from James Clark</maillink>, which
			extends symbol space name to QName.
		</p>
	</resolution>
</issue>

<issue
	keyword="redefinitionWithoutOriginal"
	originator="kohsuke.kawaguchi@eng.sun.com"
	status="resolved">
	<title>Redefinition without original</title>
	
	<description>
		<p><![CDATA[
			Should it be OK to have a redefinition (<define> inside <include>)
			when that redefined pattern is not defined in the included file?
		]]></p>
		<p>
			Consider the following example:
		</p>
<pre><![CDATA[
A.rng
<grammar>
  <include href="B.rng"/>
  <include href="C.rng">
    <define name="foo"> ... </define>
  </include>

B.rng
<grammar>
  <define name="foo"> ... </define>
</grammar>

C.rng:
<grammar/>
]]></pre>
	</description>
	<circumstance>
		<p>
			(Quoting from jjc's post)
			"If the user has done this, then they have probably made a mistake.
			On the other hand the semantics are clear.
			We can either make this an error or suggest that implementations
			give a warning."
		</p>
	</circumstance>
	<resolution>
		<p>
			TC has decided that such a redefinition has to be rejected.
			And an algorithm to detect this situation is available 
			at the thread strating from
			<maillink href="200106/msg00058.html">here</maillink>.
		</p>
	</resolution>
</issue>



<issue
	keyword="multiDefInAFile"
	originator="kohsuke.kawaguchi@eng.sun.com"
	status="resolved">
	<title>Multiple definitions in the same file</title>
	
	<description>
		TREX prohibits multiple definitions of the same pattern in the same file.
		That is, you can't write it like this:
<pre><![CDATA[
<grammar>
  <define name="foo"> ... </define>
  <define name="foo" combine="choice"> ... </define>
</grammar>
]]></pre>
		<p>
			Shall RELAX NG keep the same restriction, or not?
		</p>
	</description>
	<circumstance>
		<p>
			Quoting from jjc's post: "
				I found myself confused by this when reading RELAX grammars.
				I would find a reference to a label foo, then look for an
				elementRule foo; when I found it, I would assume it's
				the only definition.  My assumption would be incorrect,
				and I would therefore misunderstand the schema
				(though eventually of course I would notice the other
				definitions and understand correctly).
				
				The other side of the argument is that this is an extra
				complication, and makes things slightly harder to explain.
			"
		</p>
	</circumstance>
	<resolution>
		<p>
			TC has decided to allow this (in 2001/6/7 conference call)
		</p>
	</resolution>
</issue>


<issue
	keyword="datatypeContext"
	originator="jjc@jclark.com"
	status="closed">
	<title>Context information for datatype libraries</title>
	
	<description><![CDATA[
		Should RELAX NG specify the context available to the datatype provider for
		<value> and <param>? If so, what should be included (in-scope namespaces,
		entity declarations, notations declarations)?
	]]></description>
	<action>
	<p>
		TC approved the description in the current spec (which is intentionally
		silent about the context information.) So this action is closed with
		no action.
	</p>
	</action>
</issue>

<issue
	keyword="attInList"
	originator="mura034@attglobal.net"
	status="resolved">
	<title>&lt;element&gt; and &lt;attribute&gt; in &lt;list&gt;</title>
	
	<description>
	<p><![CDATA[
		It looks problematic to allow <element>s/<attribute>s within a <list>
		(may be it's not). We may want to restrict patterns that are allowed
		inside <list>.
	]]></p><p>
		This issue should be considered along with the issue
		<link href="attrInAttr">#19</link> and <link href="duplicateAttributes">#21</link>.
	</p></description>
	<proposal>
		<p>
			KK suggested to prohibit attributes inside list.
		</p><p>
			TC seems to have a consensus that these should be prohibited.
		</p>
	</proposal>
	<circumstance>
		<p>
			It is discovered that it is possible to
			modify the implementation to correctly process
			elements/attributes inside a list.
		</p>
	</circumstance>
	<resolution>
		Due to the confusion arose by allowing elements/attributes inside a list,
		TC has voted to prohibit both elements and attributes inside list,
		in the conference call of 2001/06/14.
	</resolution>
</issue>

<issue
	keyword="listDelimiter"
	originator="kohsuke.kawaguchi@eng.sun.com"
	status="resolved">
	<title>allow non-whiteSpace delimiter for &lt;list&gt;</title>
	<description>
		<maillink href="200105/msg00382.html">The original post</maillink>
	</description>
	<resolution>
		TC has decided not to incorporate this feature for Ver.1.0.
	</resolution>
</issue>

<issue
	keyword="renameNameAtt"
	originator="mura034@attglobal.net"
	status="resolved">
	<title>renaming the "name" attribute.</title>
	<description>
		<maillink href="200106/msg00117.html">The original post</maillink>
	</description>
	<resolution>
		TC has voted to close this issue with no-action-required (2001/06/14).
	</resolution>
</issue>





<issue
	keyword="multipleOperandsForNot"
	originator="Jeni Tennison &lt;mail@jenitennison.com&gt;"
	status="resolved">
	<title>Allowing multiple operands for &lt;not></title>
	<description>
	<p>
		Currently, &lt;not&gt; pattern can only have one operand, and
		<![CDATA[<not>p</not> is considered as the syntax sugar of <difference><anyName/>p</difference>]]>.
		Ms.Tennison suggests that we can change &lt;not&gt; to have
		multiple operands by modifying its definition as:
	</p>
<pre><![CDATA[<not>p1 p2 ...</not>]]></pre>
	<p>
		 as equivalent of
	</p>
<pre><![CDATA[
<difference>
  <anyName/>
  <choice>
    p1 p2 ...
  </choice>
</difference>]]></pre>
	<p>
		This change is relatively easy because &lt;not&gt; is just a syntax
		sugar and it doesn't affect any other part of the spec.
		And as Ms.Tennison said, this "would be more convenient".
	</p>
	</description>
	
	<resolution>
	<p>
		TC has decided to close this issue with no-action-required (2001/06/21).
		The reason was that &lt;not&gt; is inherently an unary operator,
		and semantics might become obscure if we allow multiple operands.
	</p><p>
		TC will revisit this issue when someone suggests to change the name
		of &lt;not&gt;.
	</p>
	</resolution>
</issue>

<issue
	keyword="defaultNsForValue"
	originator="Jeni Tennison &lt;mail@jenitennison.com&gt;"
	status="resolved">
	<title>Resolution of the default namespace for XSD's QName datatype</title>
	<description>
	<p>
		Currently, our (conceptual) interface to datatype libraries is
		defined in such a way that the following pattern matches the following
		instance.
	</p>
<pre><![CDATA[
pattern:
<?xml version="1.0"?>
<element name="root"
         xmlns="http://relaxng.org/ns/structure/0.9"
         ns="http://www.example.org"
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <!-- note that the value is unqualified -->
  <value type="QName">foo</value>
</element>

instance:
<root xmlns="http://www.example.org"
      xmlns:rng="http://relaxng.org/ns/structure/0.9">
  rng:foo
</root>
]]></pre>
	<p>
		Because the unqualified QName value is considered to have the namespace
		URI of the defefault namespace. In this case, that is the namespace URI
		of RELAX NG, and this behavior is probably not what people want.
	</p>
	</description>
	<proposal>
	<p>
		If we modify the spec to resolve unqualified prefix to the value
		of "ns" attribute, instead of the default namespace URI of the pattern file,
		then the above pattern would match the following instance:
	</p>
<pre><![CDATA[
instance:
<root xmlns="http://www.example.org"
      xmlns:rng="http://relaxng.org/ns/structure/0.9">
  foo
</root>
]]></pre>
	<p>
		The other resolution would be simply to close this issue without
		no action required.
	</p>
	</proposal>
	<resolution>
	<p>
		In 2001/06/21, TC decided that the default namespace should come from
		the ns attribute, rather than the xmlns default namespace.
	</p>
	</resolution>
</issue>





<issue
	keyword="listInList"
	originator="kohsuke.kawaguchi@eng.sun.com"
	status="resolved">
	<title><![CDATA[Allowing <list> in <list>]]></title>
	<description>
	<p>
		Allowing &lt;list&gt; doesn't buy anything.
		Should we prohibit that?
	</p>
	</description>
	<resolution>
	<p>
		In 2001/06/21 conference call, we decided to prohibit them as
		an compile-time error.
	</p>
	</resolution>
</issue>



<issue
	keyword="reorganizeNC"
	originator="mura034@attglobal.net"
	status="resolved">
	
	<title><![CDATA[simpler syntax for name class]]></title>
	<description>
	<p>
		Here is <maillink href="200106/msg00227.html">the original post</maillink>.
	</p><p>
		Although there are several algorithms for manipulating name classes,
		the name class, especially &lt;difference&gt;,
		make it look compilicated. And even if it only look complicated,
		it still discourage implementors.
	</p><p>
		However, it is possible to change the primitives to make it look simple,
		while still preserving the same expressiveness.
	</p>
	</description>
	<proposal>
	<p>
		Here is the proposed new syntax.
	</p>
<pre><![CDATA[
name-class ::=
   name-class-literal
 | <t:anyName/>
 | <t:anyNsName ns="namespaceURI"/>
 | <t:anyNsNameExcept> name-class-literal+ </t:anyNsNameExcept>
 | <t:anyNameExcept>
     (name-class-literal | <t:anyNsName ns="namespaceURI"/>)+
   </t:anyNameExcept>
 | <t:choice> name-class name-class </t:choice> 

name-class-literal ::=
   <t:name ns="namespaceURI"> NCName </t:name>  
]]></pre>
	<p>
		Several observations:
	</p>
	<olist>
		<item>
			Anything that can be written in the current syntax can also
			be written in this new syntax.
		</item>
		<item>
			&lt;anyNameExcept&gt; has the same semantics as the current
			&lt;not&gt;.
		</item>
		<item>
			It becomes trivial to check whether the given name class
			represents finite set of (URI,local) pair.
			We can even have a RELAX NG grammar that matches only to
			finite/infinite name classes.
		</item>
	</olist>
	</proposal>
	<resolution>
		In 2001/06/28 conference call, TC has voted to adopt
		<maillink href="200106/msg00259.html">James' proposal</maillink>.
	</resolution>
</issue>




<issue
	keyword="restrictInterleave"
	originator="mura034@attglobal.net"
	status="postponed">
	
	<title><![CDATA[restriction of <interleave>]]></title>
	<description>
	<p>
		Here is <maillink href="200106/msg00285.html">the original post</maillink>.
	</p><p>
		Generally speaking, &lt;interleave> is hard to implement. It CAN be implemented,
		but it is difficult. Specifically, &lt;interleave> makes it difficult to (1) perform
		validation by statically-compiled automaton, (2) perform subtyping algorithms,
		and etc.
	</p><p>
		So some degree of restrictions are desirable (at least for several people).
		If so, what restriction shall we employ?
	</p>
	</description>
	<proposal>
	<p>
		The original-post contains a proposal. But it still doesn't enjoy the consensus of TC.
	</p>
	</proposal>
	<resolution>
	<p>
		TC has decided to wait for the public comments on this issue,
		and the actual resolution of this issue will be postponed until
		the end of the review period.
	</p>
	</resolution>
</issue>



<issue
	keyword="patternFacetToText"
	originator="mura034@attglobal.net"
	status="resolved">
	
	<title><![CDATA[adding the pattern facet to <text/> and <mixed/>]]></title>
	<description>
	<p>
		Here is <maillink href="200106/msg00295.html">the original post</maillink>.
	</p>
	</description>
	<circumstance>
	<p>
		If we adopt the pattern facet to &lt;text/> and &lt;mixed/>,
		then we will be relying on W3C XML Schema Part 2.
	</p><p>
		James suggested that the pattern facet is not the right thing for this purpose.
	</p><p>
		TC is looking for real world use cases for this feature.
	</p>
	</circumstance>
	<resolution>
	<p>
		On 7/12/2001, TC has decided to close this issue without no action.
		A general agreement there was that we want to have something like
		<link href="http://www.w3.org/TR/charcol/">this</link> in the future version.
	</p>
	</resolution>
</issue>




<issue
	keyword="exceptPattern"
	originator="jjc@jclark.com"
	status="resolved">
	
	<title><![CDATA[<except/> pattern]]></title>
	<description>
	<p>
		To solve <link href="200106/msg00188.html">the problem raised by Jeni Tennison</link>, and the problem
		raised by <maillink href="200106/msg00227.html">MURATA Makoto</maillink>. TC has decided to consider
		<maillink href="200106/msg00259.html">the &lt;except> pattern</maillink> proposed by James Clark.
	</p><p>
		Specifically, what do we allow as the descendants of a &lt;except> pattern?
	</p>
	</description>
	<resolution>
	<p>
		On 7/12/2001, TC has decided to resolve this as described in the current spec.
		Specifically, only &lt;choice>,&lt;data>, and &lt;value> are allowed.
	</p>
	</resolution>
</issue>

<issue
	keyword="keyElement"
	originator="franck.delahaye@akazi.com"
	status="resolved">
	
	<title><![CDATA[adding <key>/<keyref> element instead of @key/@keyref]]></title>
	<description>
	<p>
		A public comment from Franck Delahaye suggests that the current syntax of specifying key/keyref
		by attributes becomes clumsy sometimes.
		See <maillink href="200106/msg00296.html">his post</maillink> for the actual example.
	</p>
	</description>
	<proposal>
	<p>
		James <maillink href="200106/msg00309.html">suggested</maillink> to introduce dedicated elements
		&lt;key&gt; and &lt;keyref&gt; for this purpose.
	</p>
	</proposal>
	<circumstance>
	<p>
		On the conference call of 7/12/2001, there was a general agreement
		to move to the element syntax as suggested by James. But some people
		still wanted to have some time to think about
		what should be allowed inside key/keyref.
	</p>
	</circumstance>
	<resolution>
	<p>
		On 7/19/2001, TC decided to move to the element-based syntax.
	</p>
	</resolution>
</issue>


<issue
	keyword="dropStartName"
	originator="jjc@jclark.com"
	status="resolved">
	
	<title><![CDATA[drop @name from <start>]]></title>
	<description>
	<p>
		The combine attribute and the name attribute
		of the &lt;start&gt; pattern have a complex interaction.
		We need to take some action to resolve this.
	</p><p>
		See <maillink href="200106/msg00332.html">the original post</maillink>.
	</p>
	</description>
	<circumstance>
	<p>
		The name attribute on the &lt;start> pattern is just a syntax sugar.
		So removing it will not affect the expressiveness of RELAX NG.
	</p>
	</circumstance>
	<proposal>
	<p>
		Rather than getting down to the nitty-gritty of this interaction,
		James initially suggested that dropping the name attribute might be better.
	</p><p>
		His another proposal is to transform
	</p>
	<pre><![CDATA[<start name="N" atts> P </start>]]></pre>
	<p>
		into
	</p>
	<pre><![CDATA[
<start>
  <ref name="N"/>
</start>
<define name="N" atts> P </start>
]]></pre>
	</proposal>
	<resolution>
	<p>
		On 7/12/2001, TC decided to drop the name attribute from the start pattern.
		One of the reasons is that the interaction may be confusing for users
		even if we decided to transform it in unambiguous way.
	</p>
	</resolution>
</issue>



<issue
	keyword="oneOrMoreAndContents"
	originator="mura034@attglobal.net"
	status="open">
	
	<title><![CDATA[Further restriction for the <oneOrMore> pattern]]></title>
	<description>
	<p>
		Murata-san argues that the use of &lt;oneOrMore&gt; should be further
		restricted and logically splitted into two different patterns, one for
		the repetition of attributes and the other for the repetition of elements.
	</p><p>
		See <maillink href="200106/msg00338.html">the original post</maillink>.
	</p>
	</description>
	<proposal>
	<p><![CDATA[
		He proposed that "the content of <oneOrMore> is either
		(1) attribute-free, or
		(2) <attribute> or <choice><attribute>...<attribute>.
	]]></p><p>
		This makes the whole restriction simpler.
	</p>
	</proposal>
	<circumstance>
	<p>
		The current restriction is already restrictive enough to make RELAX NG
		a "regular language" (in the sense of computer science).
	</p>
	</circumstance>
</issue>


<issue
	keyword="fragmentIdentifier"
	originator="jjc@jclark.com"
	status="resolved">
	
	<title><![CDATA[fragment identifier for href attribute]]></title>
	<description>
	<p>
		What shall the spec do wrt fragment identifiers as the value of
		the href attribute?
		Should the spec allow, prohibit, or say nothig about this?
	</p><p>
		See <maillink href="200107/msg00000.html">the original post</maillink>.
	</p>
	</description>
	<resolution>
	<p>
		On 7/12/2001, TC closed this issue with no action. The author
		believes (but not sure) that the concensus there was to
		say nothing about this in the spec and
		have relevant RFCs stand by themselves.
	</p>
	</resolution>
</issue>


<issue
	keyword="URIprocessing"
	originator="jjc@jclark.com"
	status="resolved">
	
	<title><![CDATA[processing of @datatypeLibrary and @ns]]></title>
	<description>
	<p>
		See <maillink href="200107/msg00001.html">the original post</maillink>.
	</p>
	</description>
	<proposal>
	<p>
		On 2001/07/19 conf call, TC decided to:
	</p>
	<ulist>
		<item>
			Processors doesn't touch the value of the ns attribute.
			They should treat them as strings and compare them accordingly.
		</item>
		<item>
			Processors hopefully validate the datatypeLibrary attribute by
			enforcing bunch of related RFCs, including a check of whether
			it is an absolute URI and without a fragment identifier,
			but it's not mandatory.
		</item>
	</ulist>
	<p>
		But James found that it is actually easy to enforce abovementioned
		checks for the datatypeLibrary attribute.
	</p>
	</proposal>
	<resolution>
	<p>
		Processors are mandated to validate the datatypeLibrary attribute
		as specified in RFC2396 (and related RFCs). Our spec will provide
		a regular expression that the implementation can use.
	</p>
	</resolution>
</issue>



<issue
	keyword="emptyContentModel"
	originator="jjc@jclark.com"
	status="resolved">

	<title><![CDATA[<eleemnt name="..."/> and <attribute name="..."/>]]></title>
	<description>
	<p>
		The current RELAX NG allows empty attribute declarations
		(attribute pattern without a content model), which match
		attributes with any value. On the other hand, empty element declarations
		are prohibited.
	</p><p>
		Is the status quo fine? Or do we want to have symmetry?
		If so, how do we achieve it? By allowing empty element declarations?
		Or by prohibiting empty attribute declarations?
	</p><p>
		See <maillink href="200107/msg00016.html">the original post</maillink>.
	</p>
	</description>
	<resolution>
	<p>
		On 7/12/2001, TC decided to close this issue without any action.
		There was nobody who cares about this assymetry, and many people were
		happy with the current status.
	</p>
	</resolution>
</issue>

<issue
	keyword="nsNameAndPrefix"
	originator="jjc@jclark.com"
	status="resolved">

	<title><![CDATA[
		nsName using prefix
	]]></title>
	<description>
	<p>
		Quoting from the original post:
	</p>
<pre>
If you are writing a schema using multiple namespaces, you can declare a
prefix for each namespace once using a normal namespace declaration and then
use QNames to refer to names from each of the namespaces.  However, there is
currently no comparable facility with <nsName/>; there is no way to say
match any name whose namespace is the the namespace bound to prefix "x".
Should we add a way to do this?"
</pre>
	<p>
		See <maillink href="200107/msg00017.html">the original post</maillink>.
	</p>
	</description>
	<resolution>
	<p>
		On 7/12/2001, TC decided to close this issue with no action.
		Many people didn't care about this functionality, and nobody came
		up with a good attribute name that can be used for this functionality.
	</p>
	</resolution>
</issue>


<issue
	keyword="optionalAttribute"
	originator="mura034@attglobal.net"
	status="resolved">

	<title><![CDATA[
		Syntax sugar for optional attributes
	]]></title>
	<description>
	<p>
		Murata-san said he wants to have a syntax sugar for optional attributes,
		which are frequently seen in many schemata. Currently, we have to write
	</p>
<pre><![CDATA[
<optional>
  <attribute name="...">
    ...
  </attribute>
</optional>
]]></pre>
		<p>
		See <maillink href="200107/msg00020.html">the original post</maillink>.
		</p>
	</description>
	<proposal>
		<p>
			Murata-san suggested to have &lt;optionalAttribute name="foo"&gt;
			pattern as a syntax sugar for optional attributes.
		</p><p>
			JJC proposes &lt;attribute name="foo" use="optional"&gt; as a
			syntax sugar for optional attributes.
		</p>
	</proposal>
	<resolution>
		On 7/12/2001, TC closed this issue with no action. Many people didn't
		feel the necessity of this syntax sugar.
	</resolution>
</issue>



<issue
	keyword="implicitGroupForStart"
	originator="jjc@jclark.com"
	status="resolved">

	<title><![CDATA[
		implicit grouping in <start>
	]]></title>
	<description>
	<p>
		Quoting from the original post:
	</p>
<pre><![CDATA[
Currently

<start>
  <ref name="foo"/>
  <ref name="bar"/>
</start>

means

<start>
  <group>
    <ref name="foo"/>
    <ref name="bar"/>
  </group>
</start>

Would it be better for this to be an error or for it to mean

<start>
  <choice>
    <ref name="foo"/>
    <ref name="bar"/>
  </choice>
</start>

?
]]></pre>
	<p>
		See <maillink href="200107/msg00018.html">the original post</maillink>.
	</p>
	</description>
	<resolution>
	<p>
		On 7/12/2001, TC decided to prohibit the &lt;start&gt; pattern to
		have multiple children (on the surface syntax). Only one child pattern
		is allowed for the &lt;start> pattern.
	</p>
	</resolution>
</issue>



<issue
	keyword="overridingAtt"
	originator="jjc@jclark.com"
	status="resolved">

	<title><![CDATA[
		overriding attribute
	]]></title>
	<description>
		See <maillink href="200107/msg00019.html">the original post</maillink>.
	</description>
	<circumstance>
	<p>
		Although it is true that we don't have the described capability,
		it is also true that there are many other functionalities that 
		RELAX NG doesn't have.
	</p>
	</circumstance>
	<resolution>
	<p>
		On 7/12/2001, TC closed this issue without any action
		primarily because no one wanted to have this functionalitiy.
	</p>
	</resolution>
</issue>


<issue
	keyword="emptyKey"
	originator="jjc@jclark.com"
	status="resolved">

	<title><![CDATA[
		empty strings as keys and keyrefs
	]]></title>
	<description>
	<p>
		James found a loophole in our unambiguity constraint algorithm,
		and we need to fix that hole.
	</p><p>
		See <maillink href="200107/msg00004.html">the original post</maillink>.
	</p>
	</description>
	<resolution>
	<p>
		On 2001/07/19, TC decided to add an additional rule so that
		empty strings as keys will not cause a problem. Specifically,
		&lt;key> ... &lt;/key> pattern will not match empty strings
		(which consists from whitespace characters) regardless of its body.
	</p>
	</resolution>
</issue>


<issue
	keyword="commonAnnotation"
	originator="Michael Fitzgerald &lt;mike@wyeast.net&gt;"
	status="open">

	<title><![CDATA[
		a spec for the common annotation
	]]></title>
	<description>
	<p>
		It might be nice if there is a spec that defines a set of
		common annotations (e.g., documentation, default attribute values.)
	</p><p>
		What kind of annotation do we want to define, if at all.
	</p>
	</description>
	<circumstance>
	<p>
		See related discussions
		<maillink href="200106/msg00262.html">[1]</maillink>
		<maillink href="200106/msg00213.html">[2]</maillink>.
	</p>
	</circumstance>
</issue>


<issue
	keyword="externalRef"
	originator="mura034@attglobal.net"
	status="open">

	<title><![CDATA[
		external grammar reference mechanism
	]]></title>
	<description>
	<p>
		Shall we change the language syntax so that it becomes easier
		to avoid rereading external grammars?
	</p>
	</description>
	<circumstance>
	<p>
		Currently, &lt;externalRef> references to the start pattern of
		the referenced grammar and there is no mechanism to refer to named
		patterns in arbitrary grammars. Is there any way to solve it?
	</p>
	</circumstance>
	<proposal>
	<p>
		James proposes &lt;withGrammar> (or &lt;grammarRef>), whose semantics
		is:
	</p>
	<pre><![CDATA[<withGrammar href="u"> p </withGrammar> = <grammar><include href="u"><start>p</start></include></grammar>]]></pre>
	</proposal>
</issue>



<issue
	keyword="keyInList"
	originator="jjc@jclark.com"
	status="open">

	<title><![CDATA[
		key/keyref inside <list>
	]]></title>
	<description>
	<p>
		Do we allow &lt;key> and &lt;keyref> inside &lt;list>? Or not?
	</p>
	</description>
	<circumstance>
	<p>
		If we don't allow them inside &lt;list>, then that means
		we cannot write patterns like:
	</p>
	<pre><![CDATA[
<attribute name="refs">
  <list>
    <zeroOrMore>
      <keyref name="foo">
        <data type="token"/>
      </keyref>
    </zeroOrMore>
  </list>
</attribute>]]></pre>
	<p>
		which was known as 'IDREFS', and used by many well-known vocabularies,
		including XHTML and DocBook.
	</p>
	<p>
		On the other hand, allowing them inside &lt;list> has non-trivial
		impact on the unambiguity constraint. We have to prohibit patterns like:
	</p>
	<pre><![CDATA[
<list>
  <zeroOrMore>
    <choice>
      <key name="foo">
        <data type="token"/>
      </key>
      <data type="decimal"/>
    </choice>
  </zeroOrMore>
</list>
	]]></pre>
	</circumstance>
</issue>



<issue
	keyword="whitespaceNormalization"
	originator="mura034@attglobal.net, jjc@jclark.com"
	status="open">

	<title><![CDATA[
		whitespace normalization interacts with datatypes
	]]></title>
	<description>
	<p>
		Our spec says whitespace strings in an element are stripped
		before it is validated against the content model pattern.
	</p><p>
		This makes the following document invalid:
	</p>
	<pre><![CDATA[
instance:
<foo>   </foo>

pattern:
<element name="foo">
 <data type="xsd:string">
  <param name="minLength">2</param>
 </data>
</element>
]]></pre>
	<p>
		It would be nice if we can fix it.
	</p>
	</description>
</issue>



<issue
	keyword="unknownDTLib"
	originator="kohsuke.kawaguchi@sun.com"
	status="open">

	<title><![CDATA[
		Fallback mechanism for unknown datatype library
	]]></title>
	<description>
	<p>
		It would be nice if the processor degrades gracefully
		when it sees unknown datatype libraries.
	</p>
	</description>
	<circumstance>
	<p>
		Although RELAX NG allows arbitrary datatype libraries,
		there is a incentive not to use non-standard datatype library
		because that will make a schema non-interoperable.
	</p><p>
		If there is a guarantee that unknown datatype libraries are
		treated gracefully, then it will surely encourage people to use
		local datatype libraries.
	</p><p>
		Some think that it should be left to the implementation and
		the spec should be silent about this.
	</p>
	</circumstance>
</issue>


</issues>