XML Schema: Last-Call Issues

Version $Id: lcissues.html,v 2.16 2007/02/02 11:18:04 ht Exp $


This document contains the issues raised by comments on XML Schema during its Last-Call period. Officially, the Last-Call comment period began 7 April 2000 and ended 12 May 2000; it does not in general contain issues raised earlier or later (though there are some exceptions). In its current form it has been prepared by Michael Sperberg-McQueen.

The process by which the XML Schema WG plans to handle these issues is described at http://www.w3.org/2000/04/24-xmlschema-lcprocess.html.

Material reproduced from comments has been marked up, and obvious typos have been corrected. Postings and documents which raise several issues have been silently divided among several issues. To consult the original postings, consult the archive of the comments list.

Commentators have been requested to consult the records for the issues they have raised, and check to make sure we have correctly understood and paraphrased the issue. (Note that in a few cases the paraphrase poses a slightly broader question that the commentator appears to have had in mind.)

In addition to the postings to the XML Schema comments list, some postings to the XML Schema Interest-Group mailing list have been included here; this list is W3C-internal and only those with member access to the W3C web site will be able to follow the relevant hyperlinks. Where we have received permission to quote the original posting in this public document, we have done so; in other cases, a paraphrase enclosed in square brackets has been supplied. Links to member-only material included in postings to the public list have been left intact in the interests of completeness (for those who do have member access) and simplicity (for those maintaining this document).

In addition, the following documents have been consulted:


NumClClusterLocusOriginatorResponsibleDescription
LC-1C04 datetimedatatypes 3.3.22Martin Bryan, Paul Cotton editor Specify date/time validity better?
LC-2D23 constructorsdatatypes Curt ArnoldMartin GudginConjunction types?
LC-3C01 facetsdatatypes 2.4.1.2Paul Cotton editor Why allow divergent order relations?
LC-4C01 facetsdatatypes 2.4.2.5Paul Cotton editor Enumerations should inherit ordering from underlying type
LC-5C01 facetsdatatypes 3.2.1Paul Cotton editor Ordering information is missing
LC-6D15 stringsdatatypes 3.2.1Paul CottonJonathan RobieDo strings need collation sequence?
LC-7D26 numericdatatypes 3.2.5Paul CottonJonathan RobieArbitrary-precision decimal too much?
LC-8C04 numericdatatypes 3.3.9Paul Cotton editor Integers should not allow non-significant leading or trailing zeroes
LC-9Astringsdatatypes Peter CanningBiron, Sperberg-McQueenHow do I restrict strings to ASCII or Latin 1?
LC-10D28 keysstructures Mary F. FernandezDavid Beech, Ashok MalhotraClarify the exposition of identity-constraint tables
LC-11C04 datetimedatatypes Aram Airapetian editor Date and time period
LC-12A19 modulesstructures Aaron M. CohenDan ConnollyHow can a module creator make attributes available to other modules?
LC-13A19 modulesstructures Aaron M. CohenSperberg-McQueenHow can a module creator add things to content models in other modules?
LC-14D15 xpathdatatypes Curt ArnoldDon BoxDefine an XPath type
LC-15A14 attldeclstructures Curt ArnoldSperberg-McQueenAllow hints for initial value of an attribute?
LC-16D24 content-modelsstructures Martin J. DuerstMatt TimmermansAllow arbitrary order with occurrence > 1?
LC-17Cregexdatatypes TAMURA Kent, Alexander Falk editor Give BNF for regular-expression language?
LC-18Cregexdatatypes TAMURA Kent editor Clarify character-set subtraction?
LC-19Cregexdatatypes TAMURA Kent editor Make - unambiguous in regexes?
LC-20Cregexdatatypes TAMURA Kent editor Clean up definition of multi-character escape?
LC-21D27 i18n-datetimedatatypes David RR WebberSperberg-McQueenAllow non-gregorian dates?
LC-22Cpublicationboth Murray Altheim editor Where's the glossary?
LC-23D21 sfsboth AAlexander FalkDan ConnollyUse 2000 not 1999 in XML Schema namespace name?
LC-24Ced-strstructures GAlexander Falk editor Improve or drop tabulation of changes in Structures?
LC-25C01 facetsdatatypes 3.2.2.2Alexander Falk editor Why have pattern facet for Boolean?
LC-26Cbinarydatatypes 3.2.8.1Alexander Falk editor Drop pattern from binary?
LC-27D27 i18n-numericdatatypes 3.2.3 - 3.2.5Alexander Falk, Dario De JudicibusSperberg-McQueenAllow multiple lexical spaces for floats?
LC-28C01 facetsdatatypes 3.3Alexander Falk editor Don't list fixed-value facets?
LC-29C04 datetimedatatypes Alexander Falk editor Fix lexical form for recurringDay?
LC-30Cpublicationdatatypes AAlexander Falk editor Where is xml.xsd?
LC-31Cpublicationboth Alexander Falk editor Provide archive of spec, DTDs, stylesheets, and XSDs?
LC-32D15 regexdatatypes Alexander FalkDave PetersonAdd shorthands to regex syntax?
LC-33Aregexdatatypes Alexander FalkMatt TimmermansWhy is {0,0} there?
LC-34Cregexdatatypes Alexander FalkPaul BironDefine single-character escape for vertical bar?
LC-35Ctyposprimer David Wang editor Typo in example in Primer section 5?
LC-36Bprocessrequirements David RR WebberDave Hollander, Michael Sperberg-McQueenReconsider project requirements and design?
LC-37A20 keysboth Ani PedersenNoah MendelsohnMulti-field keys?
LC-38C13 occursprimer Nick K. Aghazarian editor Fix defaulting text for maxOccurs?
LC-39Ctyposprimer 4.7Peter A. Berggren editor Typo: for finalDefault read blockDefault?
LC-40C20 keysboth Henry Thompson editor xsi:null and keyref
LC-41Ctyposdatatypes 3.3.22Curt Arnold editor Typos in datatypes?
LC-42Ctyposprimer 3.1Adrian Robert editor Typos in Primer Section 3.1?
LC-43A02 enumsboth Martin BryanMartin GudginDefining lists of permitted attribute values
LC-44Adt-queriesdatatypes Martin BryanAshok MalhotraQuestions relating to data types
LC-45A21 nsstructures gmacri@libero.itHenry ThompsonQuestions
LC-46B11 infosetstructures Mikael Ståldal chairs Remove default values?
LC-47Ctyposstructures Gregor Meyer editor Typo in example?
LC-48Csfsstructures Curt Arnold editor Fix declaration of simpleType element?
LC-49D12 content-modelsstructures Curt ArnoldMSM, Matt FuchsStreamline restriction of content models?
LC-50Csfsstructures Curt Arnold editor Suppress multiple local declarations of attribute element?
LC-51D12 content-modelsstructures Curt ArnoldDon Box, Dan ConnollyCan XML Schema define XSLT?
LC-52D13 occursstructures 4.3.3Curt ArnoldDon BoxClarify minOccur/maxOccur defaulting?
LC-53Ctyposprimer 2.7Ray Gates editor Shipper/biller vs. Shippee/billee in part 0
LC-54D04 numericdatatypes Gregor MeyerAshok MalhotraDrop nonPositiveInteger?
LC-55D21 nsdatatypes Curt ArnoldHenry ThompsonProper home namespace/resource for built-in datatypes
LC-56D19 modulesstructures Curt ArnoldMark Reinhold*Add schemaPrefix, targetPrefix attributes?
LC-57D19 impl-modulesstructures Curt ArnoldMatt FuchsAdd maximum depth for includes?
LC-58D58 impl-modulesstructures 6.3.2Curt ArnoldMatt FuchsHow to deal with nested imports?
LC-59D03 constructorsdatatypes Dario de JudicibusMary HolstegeAllow user-defined list separators?
LC-60A10 opennessstructures Dario de JudicibusRoger Costello*Change meaning of anyAttribute?
LC-61D03 constructorsdatatypes Dario de JudicibusFrank OlkenAllow record-style simple types?
LC-62D25 facetsdatatypes Ray WaldinMary Holstege, Ashok MalhotraDoubly specified facets
LC-63C12 content-modelsstructures Richard Tobin editor Forbid recursion in content models?
LC-64Aentitiesstructures Dario De JudicibusPriscilla WalmsleyEntities
LC-65C14 attldeclstructures 3.2James Tauber editor Why are {min occurs}/{max occurs} optional in Attribute Declaration?
LC-66Aurtypestructures 3.4James TauberHenry Thompson{name} of the Ur-Type
LC-67Csfsstructures 3.4James Tauber editor Why does absent point to definition for null in glossary?
LC-68Curtypestructures 3.4/3.13James Tauber editor Should there be a Simple Type Definition of the Ur-Type?
LC-69C14 attldeclstructures 4.3.3James Tauber editor Should "anyAttribute" have a "processContents" attribute?
LC-70C10 opennessstructures 4.3.7James Tauber editor Can ##local stand alone in namespace attribute or must it be in a list?
LC-71C14 attldeclstructures 3.2/4.3.1James Tauber editor {value constraint} in top-level attribute declarations
LC-72C14 attldeclstructures 4.3.1James Tauber editor Representation of {target namespace} in second case has parent instead of ancestor
LC-73D21 publicationstructures Henry ThompsonDan Connolly*, Henry ThompsonXML Schema Namespace versioning
LC-74D31 urtypestructures Noah MendelsohnPaul Grosso, Noah Mendelsohn*Define an explicit name for the urType?
LC-75A09 appinfostructures 4.3.10David Vun KannonFrank OlkenUsing appinfo annotations to store integrity constraints
LC-76A14 attldeclstructures David Vun KannonRick Jelliffe*Defining inherited attribute values
LC-77D17 sfsdatatypes Curt ArnoldPaul Biron*Namespace of has-facet, has-property
LC-78C21 nsboth Alexander Falk editor Possible schema validation issue in 3.0b3
LC-79Csfsdatatypes ADan Vint editor Stray data in Datatypes schema?
LC-80Csfsdatatypes Dan Vint editor Stray slash in declaration of base attribute for simple types?
LC-81Cpublicationboth Dan Vint editor Schema-for-schema files
LC-82A09 appinforequirements Robert MillerMatt Fuchs, Jonathan RobieXML Schema considered inadequately extensible
LC-83A09 appinfoboth Robert MillerJim BarnetteBetter support for semantics?
LC-84A15 arraysboth Robert Miller, MPEG-7Frank OlkenArrays?
LC-85C14 attldeclstructures 4.3.1James Tauber editor 4.3.1: second scenario: should value constraint default to FIXED?
LC-86C21 nsstructures 3Peter Canning editor Optional component != mandatory but absent?
LC-87Cxsinullprimer 2.3Curt Arnold editor Value space for xsi:null attribute
LC-88C03 constructorsprimer 2.3Curt Arnold editor Limits on lists
LC-89A19 modulesprimer 3.4Curt ArnoldHenry ThompsonUndeclared and unnamed namespaces
LC-90D12 content-modelsprimer 4.2Curt ArnoldDavid Fallside*Extension of mixed types
LC-91D31 entitiesstructures Steven PembertonDon Mullen*Support declaration of character entities?
LC-92A19 modulesstructures Dr. Ardeshir BahreininejadMary HolstegeDynamic element name specification.
LC-93D23 constructorsdatatypes David Vun KannonAshok MalhotraDisjoint datatypes?
LC-94A07 typedeclstructures 5.11Asir S VedamuthuHenry Thompson*Clarify Structures 5.11 Complex Type Definition Constraints - Type Derivation OK
LC-95A19 modulesstructures Jane HunterSperberg-McQueenUse of xml:lang
LC-96D10 opennessstructures 2.2.2.2Curt ArnoldHenry Thompson, Ugo Corda*equivClass: common ancestor type
LC-97D04 numericdatatypes Doug RansomFrank OlkenAllow hex notation for integers?
LC-98A19 modulesstructures gmacri@libero.itDavid Ezell*Clarifying schema location and namespace
LC-99A20 keysstructures gmacri@libero.itJonathan Robie*XPath expressions in key definitions
LC-100Ced-strstructures 3.8Michael K Smith editor Suggested rewording in '3.8 Particle Details'
LC-101A14 attldeclstructures achille@us.ibm.comChuck CampbellHelp on Wildcard
LC-102D03 constructorsboth Anders W. TellDavid EzellSuggestion: Microparsing support in XML Schema
LC-103A01 facetsdatatypes Michael AndersonLew ShannonRestricting Facets
LC-104Arequirementsboth Joseph M. Reagle Jr.Sperberg-McQueenXML Signature WG's review of XML Schema
LC-105Arequirementsboth Joseph M. Reagle Jr.Sperberg-McQueenPlease stabilize syntax
LC-106C08 complexitystructures 2.2Joseph M. Reagle Jr. editor Restructure Structures 2.2.*, or define components?
LC-107C08 complexityboth Joseph M. Reagle Jr. editor Reagle's comments on XML Schema
LC-108C08 complexityboth Joseph M. Reagle Jr. editor Clear relation of xsi and xsd namespaces
LC-109Cpublicationstructures AJoseph M. Reagle Jr. editor Make schema and DTD locations more explicit?
LC-110Cpublicationboth Joseph M. Reagle Jr. editor Simplify default values, or document better
LC-111C08 complexityprimer 3Joseph M. Reagle Jr. editor Clearer guidelines in Primer section 3?
LC-112A12 content-modelsstructures Bob SchlossHenry ThompsonDeterminism and Choices of Sequences
LC-113Cmiscstructures Susan Lesch editor Minor comments for WD-xmlschema-1-20000407
LC-114C08 complexitystructures Curt Arnold editor Minor part 1 comments
LC-115A19 modulesstructures 6.2.2Curt Arnold Roger CostelloResolution of QNames references
LC-116D19 modulesstructures 6.3.2Curt Arnold Noah MendelsohnRequire declaration before use of schema location?
LC-117D19 modulesstructures 6.3Curt Arnold Noah Mendelsohn(Locating Schema resources)
LC-118D27 i18n-booleanboth Martin J. Duerst Ashok MalhotraMaking it easy to create signable schemas
LC-119A19 modulesstructures gmacri@libero.it Ugo CordaQuestion on include
LC-120C04 datetimedatatypes Ninggang Chen editor [Clarifications] Part 2 Datatypes
LC-121D05 fcostructures Tim Berners-Lee Henry ThompsonElement names should be xml:ids in schemas
LC-122C05 fco-appinfostructures Ralph R. Swick Paul Bironxsd:appinfo
LC-123D17 sfs/content-modelsstructures Curt Arnold Henry ThompsonInconsistency on content model for group
LC-124Dformalboth Jane Hunter Frank OlkenMPEG-7 Feedback to Last Call for Review
LC-125Bprocessrequirements David RR Webber Dave HollanderExtend last-call comment period?
LC-126D12 content-modelsstructures Henry ThompsonHenry ThompsonContent model of <complexType>
LC-127D11 infosetstructures Henry ThompsonHenry ThompsonError logging in the infoset
LC-128D31 modulesstructures Henry ThompsonLee BuckLee Buck's use case returns: a hesitant proposal for type modification
LC-129Ctyposdatatypes Susan Lesch editorsMinor typos in WD-xmlschema-2-20000407
LC-130Dformalboth Roger L. Costello Roger Costello, Noah MendelsohnXML Schema Comments
LC-131-----[Dummy]
LC-132A12 content-modelsstructures Dan Rupe Martin GudginContents which may occur in any order
LC-133D05 fcodatatypes Ralph R. Swick Henry ThompsonWell-known URIs for all built-in datatypes and facets
LC-134-----[Dummy]
LC-135A06 localtypesstructures Ralph R. Swick Noah Mendelsohn'form' and 'elementFormDefault' appear harmful
LC-136D15 constantsboth Steven Goldfarb Frank OlkenSymbolic constants
LC-137-----[Dummy]
LC-138-----[Dummy]
LC-139A12 content-modelsstructures Ninggang Chen Dan Connolly*Mixed Content Model
LC-140-----[Dummy]
LC-141-----[Dummy]
LC-142Dformalboth Jim Trezzo Ashok Malhotra, David BeechOracle Comments on XML Schema Last Call:
LC-143D30 complexitystructures Philip Wadler Matt FuchsSimplifying XML Schema
LC-144A15 arraysdatatypes Don Brutzman Frank OlkenX3D-related comments on Schema datatypes
LC-145A09 appinfodatatypes Don BrutzmanPriscilla WalmsleyHow do I specify additional numeric constraints?
LC-146A12 content-modelsstructures gmacri@libero.it Henry ThompsonQuestion on "ref" attribute
LC-147-----[Dummy]
LC-148-----[Dummy]
LC-149A10 opennessstructures Jane Hunter (MPEG-7)Frank Olken, Lee BuckProvide guidance on extending schema for schemas?
LC-150D15 arraysboth Jane Hunter (MPEG-7)Frank OlkenAllow specification of size constraints in instance?
LC-151A20 keysstructures Jane Hunter (MPEG-7)Frank OlkenHow do I restrict IDREFs to particular (element) types?
LC-152D07 typedeclstructures Jane Hunter (MPEG-7)Frank OlkenSimultaneous restriction and extension?
LC-153D24 occursstructures Jane Hunter (MPEG-7)Frank OlkenRe-align occurrence indications for elements and attributes?
LC-154D19 modulesstructures Jane Hunter (MPEG-7)Frank OlkenAllow explicit specification of name import/export?
LC-155D29 opennessstructures Roger L. Costello Roger Costello, Noah MendelsohnRestore global openness
LC-156D29 opennessstructures Roger L. Costello Roger Costello, Noah MendelsohnMake schema for schemas open?
LC-157D29 opennessstructures Roger L. CostelloRoger Costello, Noah MendelsohnClarify schema evolution
LC-158D08 complexityboth Roger L. Costello Roger Costello, Noah MendelsohnSplit the specification?
LC-159D28 keys-infosetboth Jim Trezzo Ashok Malhotra, David BeechAdd PSV infoset properties for keyref info?
LC-160D10 opennessboth Jim Trezzo Ashok Malhotra, David BeechDefault equivclass blocking?
LC-161B11 infosetboth Jim Trezzo Ashok Malhotra, David BeechAn API needed for the PSV info set?
LC-162D28 infosetboth Jim Trezzo Ashok Malhotra, David BeechAdd items to PSV infoset for schemas?
LC-163D04 datetimeboth Jim Trezzo Ashok Malhotra, David BeechRecurring durations
LC-164D18 xsistructures Philip WadlerMatt FuchsDrop xsi:type?
LC-165D23 xsi-nullsstructures Philip Wadler Matt FuchsDrop xsi:null?
LC-166D12 content-modelsstructures Philip Wadler Matt FuchsAlign simple and complex types more fully?
LC-167D06 localtypesstructures Philip Wadler, Murray AltheimMatt FuchsLocal declarations: less or more
LC-168A07 typedeclboth Murray AltheimPeter ChenDrop/clarify anonymous types?
LC-169Aed-primerprimer Murray AltheimDavid FallsidePrimer notes
LC-170D19 modules-includestructures Murray AltheimAki YoshidaDrop include?
LC-171D20 keysstructures Murray AltheimDavid ClearyDrop/clarify keys?
LC-172D10 opennessstructures Murray AltheimMSM, Murray MaloneyDrop any wildcard?
LC-173C08 complexitystructures Murray Altheim editor Miscellaneous notes on structures
LC-174D08 complexitystructures Murray AltheimMary HolstegeDrop abstract model?
LC-175D10 opennessstructures Murray AltheimNorm WalshDrop equivalence classes?
LC-176Anotationsstructures Murray AltheimDave PetersonDrop/clarify notation?
LC-177D16 validationstructures Murray AltheimMatt FuchsTighten conformance rules?
LC-178A08 complexitystructures Murray AltheimSperberg-McQueenClarify!
LC-179Astr-queriesstructures Peter CanningPeter ChenMay components not at the top level be named?
LC-180A08 complexityboth XML QuerySperberg-McQueenLocality of exposition
LC-181C12 content-modelsstructures XML Query editor Allow abstract types in element declarations?
LC-182D16 localtypesstructures XML QueryRick JelliffeRelax single-binding rule?
LC-183Cvalidationstructures XML Query editor Clarify details of lax validation?
LC-184A19 modulesstructures Steve MonkDan ConnollyHow do I combine schemas for two namespaces in one schema?
LC-185D11 infosetboth XML Core WGSperberg-McQueenComments from XML Core WG
LC-186D19 modulesstructures Daniel VeillardMatt TimmermansNaturalizing names while declaring their relation to their original namespace
LC-187D04 numericdatatypes Graham KlinePaul BironType hierarchy for numerics
LC-188Ced-primerboth Martin Duerst editor Notes on the primer
LC-189D02 enumsdatatypes Martin DuerstAsir VedamuthuEasier (more compact) enumerations?
LC-190D07 typedeclstructures Martin DuerstMSMAllow attributes and content model in any order?
LC-191D22 sui-generisboth XForms GroupJohn McCarthyComments from XForms Group
LC-192D11 infosetboth DOM WGSperberg-McQueenComments from DOM WG
LC-193A14 attldeclstructures Peter van de HoefSperberg-McQueenHow do I specify co-occurrence constraints on attributes?
LC-194D12 content-modelsboth Michael StonebrakerDave HollanderAlign better with OR schema
LC-195Ced-strstructures Martin Duerst editor Eliminate the term 'obtains'?
LC-196C08 complexityboth Martin Duerst editor Need graphics?
LC-197D26 numericdatatypes Martin DuerstDon MullenAllow negative scale?
LC-198D28 infosetboth XML QueryHenry ThompsonProvide type-information in PSV Infoset?
LC-199D28 infosetboth XML QueryHenry Thompson et al.A schema for the schemaless?
LC-200D24 content-modelsboth XML QueryDavid BeechDistinguish sequences from sets?
LC-201D20 keysstructures XML QueryJonathan RobieSupport cross-document keyref?
LC-202B11 infosetdatatypes XML Query chairs Make physical representation an optional PSV property?
LC-203C 11 infosetboth XML QueryAlign part 1 and part 2 better on datatypes infoset?
LC-204D15 dt-miscboth XML QuerySperberg-McQueenType coercions
LC-205C27 i18nprimer I18n WG editor I18n notes on primer, misc
LC-206C27 i18nstructures I18n WG editor I18n notes on structures
LC-207C27 i18ndatatypes I18n WG editor I18n notes on datatypes, misc
LC-208D24 content-modelsstructures Philip WadlerRename equivalence classes?
LC-209D23 enumsboth XFormsDon Box, Martin GudginOpen enumerations
LC-210D31 miscstructures BeechMake DTD non-normative?
LC-211D22 xformsdatatypes XForms WGJohn McCarthy*Add masks?
LC-212D22 xformsboth XForms WGJohn McCarthy*Currencies
LC-213D22 xformsdatatypes XForms WGJohn McCarthy*Drop facets?
LC-214D22 xformsdatatypes XForms WGJohn McCarthy*Add facets?
LC-215D27 i18nstructures I18n WGMartin GudginEasy add-ins
LC-216D27 i18nboth I18n WGMerge mixed, text-only, and string?
LC-217D27 i18nstructures I18n WGAllow pattern on complex types?
LC-218B27 i18nboth I18n WG chairs Solve C0 control-character issue?
LC-219D27 i18ndatatypes I18n WGLay foundation for multiple lexical representations?
LC-220D27 i18ndatatypes I18n WGSingle lexical representations?
LC-221D27 i18ndatatypes I18n WGI18n on date/time types
LC-222Dunassignedstructures XML QueryRevamp occurrence indicators?

LC-1. no-year-zero: Specify date/time validity better?

Issue Class: C Locus: datatypes 3.3.22 Cluster: 04 datetime Status: ok
Assigned to: editor Originator: Martin Bryan, Paul Cotton

Description

Should the datatypes part of XML Schema specify the legal value ranges for the parts of dates and times? In particular, should it point out that 0000 is not a valid year in the Gregorian calendar?

Interactions and Input

Input from Martin Bryan:

(Martin Bryan to XML Schema comments list, 29 February 2000.)

There would appear to be no mechanism for entering a data prior to 0 AD. Could -CCYY be allowed, with the proviso that 0000 is not a valid year?

Input from Paul Cotton:

(Paul Cotton to XML Schema comments list, 9 March 2000)

The spec should specify the legal value ranges of the CC, YY, MM, and DD parts of a date (even if this information is given in ISO 8601), and also the various parts of a time value.

Input from C. M. Sperberg-McQueen:

"C. M. Sperberg-McQueen" <cmsmcq@acm.org> to XML Schema Comments list, Mon, 08 May 2000 20:11:05 -0600

At 16:24 00/02/29 +0000, Martin Bryan wrote: There would appear to be no mechanism for entering a data prior to 0 AD. Could -CCYY be allowed, with the proviso that 0000 is not a valid year?

I believe that this form is allowed by the schema spec. Section 3.3.24.1 says

"To accommodate year values outside the range from 0 to 9999, additional digits can be added to the left of this representation and an preceding '-' is allowed."

I believe there are two typos here (there is no year 0 in the Gregorian calendar, so the range should be 1-9999, and for 'an' read 'a'), but the phrase about the preceding minus sign is not a typo.

Personally, I agree that there should be a note pointing out that '0000' is not a valid year; otherwise, too many implementors will get it wrong.

Input from Martin Bryan <mtbryan@sgml.u-net.com>:

"Martin Bryan" <mtbryan@sgml.u-net.com> to XML Schema Comments list on Sun, 14 May 2000 08:01:08 +0100

Ashok

You have sent a number of notes with comments on the Datatypes part of the XML Schema specification. We appreciate your input. I believe I have responded to all your concerns but would like to ask you formally whether you feel your concerns have been addressed and the issues you raised can be closed.

The vast majority of my concerns have been answered, for which I thank you. There are still some relatively minor ones, such as the sentence that reads 'To accommodate year values outside the range from 0 to 9999, additional digits can be added to the left of this representation and an preceding "-" is allowed.' This really needs the 0 changed to 1, and a statement to indicate that negative numbers represent Before Christian Era (BC/BE) dates....

Proposed Resolution

petsa@us.ibm.com to XML Schema Comments list, Fri, 14 Apr 2000 13:18:32 -0400

Appendix D now contains information on the legal ranges of the parts of date and time values.

Actual Resolution

Formal response to commentator. Martin Bryan confirms he is satisfied, for the most part. A later message says he thinks there are still problems.

Paul Cotton indicates he is satisfied.

LC-2. conjunction-types: Conjunction types?

Issue Class: D Locus: datatypes Cluster: 23 constructors Status: silent
Assigned to: Martin Gudgin Originator: Curt Arnold

Description

Should XML Schema introduce constructors for simple types based on Boolean logic?

Interactions and Input

Cf. Disjoint datatypes?

Input from Curt Arnold:

Curt Arnold to XML Schema Comments list, 3 March 2000:

The following facets would seem to address quite a few constructs that appear within Schema for Schema and a few things like multiple, disjunctive value ranges from http://lists.w3.org/Archives/Public/www-xml-schema-comments/1999OctDec/0034.html

  • <or>: The <or> facet is satisfied if any of the contained facets is satisified.
  • <and>: The <and> facet is satisified if all of the contained facets are satisifed.
  • <nor>: The <nor> facet is satified if none of the contained facets are satisified. A <nor> with a single contained facet is used to perform a not operation.
  • <conform>: The conform facet is satified if the lexical representation would be acceptible to the specified datatype.
  • <enumeration>: For this to work right, <enumeration> needs to become a container of <literal> elements which will make it logically equivalent to all the other facets.

Examples:

<simpleType name="maxOccur" base="string">
    <or>
        <conform type="non-negative-integer"/>
        <enumeration><literal value="*"/></enumeration>
    </or>
</simpleType>
<simpleType name="noTeens" base="integer">
    <or>
        <and>
            <minInclusive value="0"/>
            <maxExclusive value="10"/>
        </and>
        <minInclusive value="20"/>
    </or>
</simpleType>
<simpleType name="targetOrNamespace" base="string">
    <or>
        <enumeration>
            <literal value="##targetNamespace"/>
        </enumeration>
        <conform type="uri-reference"/>
    </or>
</simpleType>

<simpleType name="targetOrNamespaces" 
            base="targetOrNamespace" 
            derivedBy="list"/>

<simpleType name="anyAttribute" base="string">
    <or>
        <enumeration>
            <literal value="##any"/>
            <literal value="##other"/>
            <literal value="##local"/>
        </enumeration>
        <conform type="targetOrNamespaces"/>
    </or>
</simpleType>

Proposed Resolution

Discussed at Edinburgh ftf.

Task force assigned to work on the problem.

Actual Resolution

Discussed in call of 2000-07-14.

The question is on the 'union types proposal'. The WG discussed the question.

Paul Biron spoke in favor of the proposal: the functionality is important for our language and for other people's schemas. XSL documented this very early, so it's a well-known need which this proposal meets.

David Beech expressed a number of reservations: there's an even stronger requirement for codependency constraints, which we've done nothing about. This proposal adds to the complexity of the spec, and picks some low-hanging fruit, but not necessarily the most important fruit. The proposal to change the syntax for complex types does so in a way that does some strange things (e.g. requiring 'restriction' as part of the definition of a complex type without any explicit base!).

It's much more important to just put 'type' in the element name and merge simple and complex types. The uniformity proposed here has several restrictions. Is this a slippery slope? What about unions for complex types? You soon get into needing discriminators. Unions are not normally order-dependent; they are usually commutative.

The union-types proposal from the task force was sent 30 June 2000 to the IG by Henry Thompson.

Discussed again at face to face meeting 1-2 August 2000.

Clarifications: the PSV infoset should give you both the union type and also which member of the union you actually got. It is possible to use xsi:type with union types, as a discriminator. Open enumerations (e.g. a union of the enumeration small - medium - large with string) are possible.

In discussion, some WG members said they liked the general idea better than the specifics of the proposed concrete syntax, and were worried about the verbosity of common cases; other WG members felt that the concrete syntax was a net usability win, since the proposal reduces the variation in declarations and makes their formal definitions much tighter, and thus much easier to work with in XML-aware tools. Some WG members felt that too much effort was being put into a relatively minor problem, when more important problems (e.g. co-occurrence constraints) had been shelved for now. The disambiguation rule has the perhaps unpleasant effect that A union B is not the same as B union A. An alternative syntax which used attributes and not nested subelements seemed attractive to some WG members; it would however in practice require that all member types have names, and had been considered and rejected by the task force. Some members of the WG held that the attribute-based alternative would in fact be harder to understand and teach.

Resolved: to resolve issues LC-2 and LC-93 by adopting the proposal. Dissenting: Vedamuthu. Abstaining: Beech, Grosso.

On the follow-on question of aligning the syntax of complex types with that proposed for simple types, a majority (12:4) was inclined to pursue the question. A task force met overnight and reported the next day.

Resolved: to adopt the task force proposal, leaving open the question of the generic identifiers for the elements and the correct solution to the design problem identified in the proposal.

Discussed the follow-on issues in call of 2000-08-10. Resolved: to retain the element names simpleContent and complexContent.

Resolved without dissent: to allow the 'mixed' attribute on the 'complexType' element, specifying that when the complexType element has a simpleContent child, then the attribute has no effect (but is not illegal). Abstaining: Beech, Corda, Mendelsohn, Olken, Vedamuthu by proxy.

Formal response to commentator.

LC-3. cotton-on-order: Why allow divergent order relations?

Issue Class: C Locus: datatypes 2.4.1.2 Cluster: 01 facets Status: ok
Assigned to: editor Originator: Paul Cotton

Description

Should the discussion of order relations state or imply that each datatype must define a different order relation on the value space?

Interactions and Input

Input from Paul Cotton:

(Paul Cotton to XML Schema comments list, 9 March 2000)

1. Section 2.4.1.2 Order

This section states "In such cases each datatype will define a different order relation on the value space". I do not understand why this must be done. Certainly at worst it should say "may define". Better even would be to delete the sentence entirely.

Proposed Resolution

petsa@us.ibm.com to XML Schema Comments list, Fri, 14 Apr 2000 13:18:32 -0400

Sentence deleted.

Actual Resolution

Formal response to commentator. Paul Cotton indicates resolution is satisfactory.

LC-4. cotton-on-enumeration: Enumerations should inherit ordering from underlying type

Issue Class: C Locus: datatypes 2.4.2.5 Cluster: 01 facets Status: ok
Assigned to: editor Originator: Paul Cotton

Description

Should the discussion of enumerations be revised to specify that enumerations inherit their ordering from their base type?

Interactions and Input

Input from Paul Cotton:

(Paul Cotton to XML Schema comments list, 9 March 2000)

2. Section 2.4.2.5 enumeration

This section states "No order or any other relationship is implied ...". This seems to imply that enumerations are not ordered. I think this sentence needs to be reworded to imply that "No further ordering is implied" since certainly the ordering of the underlying data type must be inherited. If not then XML Query will have no means of ordering enumerations.

Proposed Resolution

petsa@us.ibm.com to XML Schema Comments list, Fri, 14 Apr 2000 13:18:32 -0400

Section has been reworded to reflect the intent above.

Actual Resolution

Formal response to commentator. Paul Cotton indicates resolution is satisfactory.

LC-5. missing-order-info: Ordering information is missing

Issue Class: C Locus: datatypes 3.2.1 Cluster: 01 facets Status: ok
Assigned to: editor Originator: Paul Cotton

Description

Should all primitive datatypes specify how their values are ordered?

Interactions and Input

Input from Paul Cotton:

(Paul Cotton to XML Schema comments list, 9 March 2000)

3. Section 3.2.1 string

This section states "The ordered property of string is the Unicode character number sequence." The string data type is the only primitive datatype that makes an explicit statement about how the ordering relation (not property) is defined. I expect the ordering information is missing from other primitive datatype sections.

Proposed Resolution

petsa@us.ibm.com to XML Schema Comments list, Fri, 14 Apr 2000 13:18:32 -0400

We've added order relations for the other primitive datatypes.

Actual Resolution

Formal response to commentator. Paul Cotton indicates resolution is satisfactory.

LC-6. cotton-on-collation: Do strings need collation sequence?

Issue Class: D Locus: datatypes 3.2.1 Cluster: 15 strings Status: silent
Assigned to: Jonathan Robie Originator: Paul Cotton

Description

Should XML Schema allow schema authors to specify that a particular subtype of string should be sorted according to a particular collation sequence? If so, should XML Schema provide a way of defining collation sequences, or simply a way to provide a name, with the further details left out of bound (as in SQL)?

Interactions and Input

Input from Paul Cotton:

(Paul Cotton to XML Schema comments list, 9 March 2000)

4. Section 3.2.1 string This section states "The ordered property of string is the Unicode character number sequence." I wonder why the definition of the string datatype does not permit a user to define the "collation" to be used? "Unicode character number sequence" is only one "collation" and is not very useful. In addition the specification does not explain why this "collation" is needed.

XML Query will need to support different collations for the string data type. It would be preferable if the collation was defined as part of the <data type> not as part of the query <predicate>s. I would recommend you consider a solution such as one adopted by SQL to permit the type definer to simply name the collation to be used. No exact definition of the action collation needs to be provided since there are several other sources for this information.

Proposed Resolution

petsa@us.ibm.com to XML Schema Comments list, Fri, 14 Apr 2000 13:18:32 -0400

Collation is needed to enable max/min on strings. The WG discussed user-defined collations but decide not to do anything about this in V1. My personal viewpoint is that, except for the min/max case, schema never concerns itself with the relation between 2 strings and so this is not a schema problem. Others disagree with this position but, regardless, we will not add anything in V!.

Actual Resolution

Discussed in call of 2000-06-29.

Some members of the WG suggested that this issue is tied in with the proposal from the i18n WG to remove minimum- and maximum-value facets from strings and string-based types.

After discussion, a straw poll was taken, covering the four possibilities of keeping/adding or removing/not-adding the min/max facets and user-identified collation sequences. The results showed a small amount of support for retaining min/max values and adding user-identified collation sequences, some support for removing min/max and adding collations, no support for the status quo, and substantial support for removing min- and max-values and declining to add user-identified collation sequences.

RESOLVED: to remove minimum- and maximum-value facets from strings and string-based types, and to reply to LC-6 by saying no (with rationale). Dissenting: Olken.

This decision left us with a follow-on question. Up until now, all ordered value spaces have had (a) a specified ordering relation and (b) minimum- and maximum-value facets. In removing those facets from string, we have removed the need to specify any collation sequence at all. Do we wish:

  • to define strings as having no ordering relation?
  • to say only that *this spec* does not specify an ordering relation on strings (adding, perhaps, that other applications may wish to define an ordering relation which may depend on language and/or locale information)?
  • to say that strings are ordered, by the collation sequence implicit in Unicode, but that min- and max-value facets are not applicable to them (adding, perhaps, that other applications may wish to use some other ordering relation which may depend on language and/or locale information)?
  • to say that strings are ordered, in principle, but that the ordering relation is locale-dependent and not specified by XML Schema?

There was no support for claiming that strings are intrinsically unordered; there was some support for each of the others, with a very strong preponderance of support for saying only that XML Schema does not specify any ordering relation for strings.

Paul Biron expressed the intention of the editors to add a note making clear that any description of a value space as 'unordered' should not be taken as precluding other applications from defining an ordering relation for that value space, only as indicating that XML Schema defines no such relation. There was no audible objection to that statement of intent.

RESOLVED: to specify that XML Schema defines no ordering relation on strings. Dissenting: Maloney, Olken. (Rationale: we should say that strings are ordered, and that the order relation is locale-dependent).

Initial response.

Followup.

LC-7. cotton-on-decimal: Arbitrary-precision decimal too much?

Issue Class: D Locus: datatypes 3.2.5 Cluster: 26 numeric Status: nok
Assigned to: Jonathan Robie Originator: Paul Cotton

Description

Is the requirement that XML Schema implementations must support arbitrary-precision decimals an excessive burden on implementors of a query language? Should XML Schema instead specify that the maximum precision for decimal numbers should be an "implementation-defined number not less than X", with the value of X to be determined?

Interactions and Input

Input from Paul Cotton:

(Paul Cotton to XML Schema comments list, 9 March 2000)

5. Section 3.2.5 decimal

The Note in this section asks "Our design discussions did not reveal convincing evidence of undue burden because of arbitrary precision decimal numbers in this design, but we welcome further input from implementors".

I believe that you may want to consider the impact on implementors of a query language based on this data type that must implement <predicate>s and arithmetic operators for an "arbitary precision decimal number". I believe we will find this to be too expensive and that implementations will in fact constrain the precision of this data type. If the XML Schema specification does not do this then interoperability will be heavily constrained.

I do not accept the argument that XML Schemas needs an arbitrarily precise decimal datatype just to be able to model the length of names in XML which are in turn unconstrained in length.

I suggest that the document be modified to state that the maximum precision for decimal numbers should be an "implementation-defined number not less than X" where X can be agreed upon by implementors as a practical lower limit for this amount. "Implementation-defined" means that a conforming implementation must state in its conformance statement what the value is.

Proposed Resolution

petsa@us.ibm.com to XML Schema Comments list, Fri, 14 Apr 2000 13:18:32 -0400

There is now a note in 3.2.5 asking for feedback on this issue.

Proposed Resolution

Discussed at Edinburgh ftf.

Task force consisting of Robie and Malhotra will examine this with a goal of formulating a new design which (1) sets minimum precision and magnitude that all processors must support and (2) makes a formal proposal for what schema processors must accept (presumably includes unrestricted integer) in a schema as well as an instance.

Proposed Resolution

1. The XML Schema spec set down the minimum mumber of digits that must be supported by a conforming XML processor for the numeric datatypes integer, decimal, float and double.

2. XML processors are free to support more than the minimum number of digits. If they do so, they should adverstise this fact as part of their specifications.

3. The minimum number of digits required for (1) should be derived based on the number of digits supported by some standard programming languages such as C and Java. These are discussed below. In earlier notes I had proposed that the precisions be based on the number of digits supported by 32-bit processors but I realized that languages often use multiple words to store numeric values.

Also, as most processors will translate values encoded in XML documents into values in some programming language, it seems more sensible to base precisions on those supported by common programming languages.

SUGGESTED PRECISIONS

The Java Language Specification (Gosling, Joy, Steele) says

  • For int, from -2147483648 to 2147483647 i.e 9 significant digits
  • For long, from -9223372036854775808 to 9223372036854775808 i.e. 18 significant digits
  • Decimals can have the same range of values i.e the same number of digits.
  • For float the values are of the form +/- m*2**e where m is a positive integer less than 2**24 i.e 16777216 and e is between -149 and 104. This yields 7 significant digits for the mantissa and 2 digits for the exponent. For double, m is a positive integer less than 2**53 i.e 9007199254740992 and e is an integer between -1075 and 970. This yields 15 significant digits for the mantissa and still 2 digits for the exponent.

C allows compilers to chose how many digits to use for int and long. The limits.h library defines the minimum and maximum values for long consistent with the values for Java int above.

For floating point numbers float.h defines precisions tha are significantly lower: for float, 6 digits of precision in the mantissa and a maximum of +/- 37 for the exponent. For double, 10 digits of precision and still +/- 37 as a maximum for the exponent.

I do not understand the lower precision for floating point numbers in C. Perhaps this is because float.h also allows you to specify the radix for float and double or merely that I used Kernighan and Richie and newer compilers allow more digits.

RECOMMENDATION

If we set a single minimum standard then, based on the Java figures above, I would recommend 18 digits for integers and decimals. For float and double I would recommend 15 digits for the mantissa and 2 digits for the exponent.

If these figures are felt to be too generous we could go with a 2-tier system.

Actual Resolution

Discussed in call of 2000-07-21.

The question is on a proposal from Paul Cotton to specify some minimal level of support for precision of decimals, which all implementations must support as a minimum. The argument in favor is that this clarifies where the interoperability boundary lies much more clearly than will otherwise be the case. The argument against is that the minimum level of support will turn into the maximum and no one will support any more.

Concrete proposal by Ashok Malhotra is: If we set a single mnimum standard then, based on the Java figures above, I would recommend 18 digits for integers and decimals. For float and double I would recommend 15 digits for the mantissa and 2 digits for the exponent.

RESOLVED: to dispose of issue LC-7 by saying in principle yes, we will specify some minimal level of support for precision of decimals. Dissenting: Biron, Corda, Gudgin. Abstaining: none

RESOLVED without dissent: to specify that conforming processors may support any number of digits of precision greater than or equal to 18 digits precision, and to make the minimum level a priority feedback issue. Abstaining: Biron, Corda, Fuchs, Gudgin, Mendelsohn, Peterson.

RESOLVED: to require processors to specify the maximum number of digits they support. Dissenting: Fuchs, Hollander, Mendelsohn, Vedamuthu. Rationale for dissent: because we don't specify anything about the form of documentation, this is not really enforceable as a requirement.

Formal response.

Michael Rys would prefer a different solution.

LC-8. cotton-on-integer: Integers should not allow non-significant leading or trailing zeroes

Issue Class: C Locus: datatypes 3.3.9 Cluster: 04 numeric Status: ok
Assigned to: editor Originator: Paul Cotton

Description

Should XML Schema forbid the use of non-significant leading and trailing zeroes?

Interactions and Input

Cf. Allow multiple lexical spaces for floats?

Input from Paul Cotton:

(Paul Cotton to XML Schema comments list, 9 March 2000)

6. Section 3.3.9 integer

The definition of the lexical representation of the integer datatype does not correctly reflect that non-significant leading and trailing zeroes should not be used. Non-significant zeroes are leading zeroes to the left of the decimal point or trailing zeroes to the right of the decimal point. I suggest using this concept in the descriptive material.

Proposed Resolution

petsa@us.ibm.com to XML Schema Comments list, Fri, 14 Apr 2000 13:18:32 -0400

This is a good addition to integer. For decimal, trailing zeroes sometimes provide information.

Proposed Resolution

Discussed at Edinburgh ftf.

CONSENSUS: make no change to status quo (meaning keep multiple lexical representations for integers and decimals), but add explicit definition of canonical representations for them (and other types with multiple lexical representations).

RESPONSE to originator will be that we are unwilling to impose that usability cost. ACTION to editors to propose which forms are canonical.

OPEN QUESTION: what about the PSV infoset? Do you get a single value in the original form? In the canonical form? Both? Status quo is you get the string as it was in the document and its type.

These questions were resolved, in the course of September, in favor of a schema-normalized form of any simple type, which has undergone whitespace normalization and has no comments or processing instructions, but which is not canonicalized (so that, for example, nonsignificant leading and trailing zeroes may occur). Members of the WG deeply involved with database implementation said that most commercial DBMS are capable of handling leading and trailing zeroes.

Actual Resolution

Formal response to commentator. Paul Cotton indicates that XML Query can live with this decision, although it would prefer a differeent one. "I am still concerned that user's of the XML Query language will want to distinguish between occurrences of XML Schema Integers with the values 01 and 1. This is why I wanted to prohibit the former. Since XML Schema has not prohibited the first alternative then XML Query will simply have to ensure that it clearly states which values can be searched for."

LC-9. asciiString: How do I restrict strings to ASCII or Latin 1?

Issue Class: A Locus: datatypes Cluster: strings Status: ok
Assigned to: Biron, Sperberg-McQueen Originator: Peter Canning

Description

How should a schema designer go about restricting the string type to contain only characters from a specific coded character set or encoding, such as ASCII or ISO Latin 1 (ISO 8859-1)?

Interactions and Input

Input from Peter Canning:

(Peter Canning to XML Schema IG, 14 March 2000 -- member-only)

[What if I want a type 'ASCII' or 'Latin1', to model an existing string type?]

Proposed Resolution

(The following draft reply was prepared by C. M. Sperberg-McQueen.)

Because XML Schema applies only at the info-set level, it is not possible to restrict a string to a specific character encoding, nor to what ISO standards used to call a coded character set, such as ISO 8859-1. All XML processors are required to accept data in the UTF-16 and UTF-8 encodings, and no schema can override that.

It is, however, possible to restrict a string to a particular set of characters (a particular character repertoire). The process might go something like this:

  1. define a simple type called (for example) ASCIIstring. Derive it from string by using a regular expression pattern in the pattern facet.
  2. use the type ASCIIstring wherever you would otherwise have used string

If you are defining a self-contained schema (i.e. you don't expect elements from other namespaces to appear in your documents), this should be all you are looking for.

If you are defining a schema module, which is expected to be used in conjunction with other modules, designed by other people, and you had been hoping for a way to restrict the other modules, then it will be disappointing to learn that such after-the-fact restriction of other people's schemas is not supported in XML Schema.

(The following draft reply was prepared by Paul Biron and posted to the XML Schema IG on 15 March 2000.)

Assuming the character set you wish to restrict to is a Unicode Block, then you could define a subtype of string restricted to just that block as in:

<simpleType name='ascii-string' base='string'>
  <pattern value='\p{IsBasicLatin}*'/> 
</simpleType>

or

<simpleType name='latin-1-string' base='string'>
  <pattern value='\p{IsLatin-1Supplement}*'/>
</simpleType>

This is mentioned in the regex design that was part of the 1999-12-17 draft but was accidentally left out of the 2000-02-25 draft. The recognized block names are those in the Unicode Database (file blocks.txt), with whitespace stripped out.

If the character set you with to restrict to is not a single block, but can be constructed by combining some set of Unicode properties, then you can do something like (which is described in the 2000-02-25 draft):

<simpleType name='letters-and-punctuation' base='string'>
  <pattern value='[\p{L}\p{P}]*'/> 
</simpleType>

As a last resort, you could always construct the character class which comprises the character set by enumerating all members of the class [2], as in:

<simpleType name='my-strings' base='string'> 
  <pattern value='[&#123;&#827;&#5473;...]*'/> 
</simpleType>

Actual Resolution

Formal response.

Commentator responds privately 21 September "I am satisfied with the response of the working group on this issue."

LC-10. clarify-identity-constraints: Clarify the exposition of identity-constraint tables

Issue Class: D Locus: structures Cluster: 28 keys Status: silent
Assigned to: David Beech, Ashok Malhotra Originator: Mary F. Fernandez

Description

Should the exposition of identity-constraint tables be revised in the interests of clarity?

Interactions and Input

Input from Mary Fernandez:

(Mary Fernandez to XML Schema Comments list, 15 March 2000)

I am writing as a representative of the XML Query working group. Currently, we are specifying the data model for XML Query. Part of that exercise requires specifying formally the mapping from an instance of the PSV Infoset to an instance of the Query data model.

This message regards the definition of the Schema Infoset Contribution for Identity-constraint tables described in : http://www.w3.org/TR/xmlschema-1/#Identity-constraint_Definition_details.

This message has 2 parts:

Part 1.

A request to review the example in the attached text file. Please confirm that this example is correct w.r.t. the definition above.

If not, please explain how we misinterpreted the definition.

The attached example contains an abbreviated version of the <purchaseReport> example by David Fallside in : http://www.w3.org/XML/Group/xmlschema-current/new-design/exposition.html.

For the given example, we define a fragement of the corresponding PSV Infoset instance, which contains the Identity-constraint table for the <purchaseReport> element item.

We use the following notation:

  • is: denotes the namespace for information set items
  • psvis: denotes the namespace for Schema contributions to Infoset

Here's a DTD for an identity-constraint table that I inferred from the XML Schema document:

<!ELEMENT psvis:identityConstraintTable 
          (psvis:identityConstraint, psvis:nodeTable)*> 
<!ELEMENT psvis:identityConstraint is:ref>
<!ELEMENT psvis:nodeTable (psvis:keySequence, psv:qualifiedNode)*>
<!ELEMENT psvis:keySequence (is:ref)*> 
<!ELEMENT psvis:qualifiedNode is:ref>
<!ELEMENT is:ref EMPTY> 
<!ATTLIST is:ref idref > 

Part 2

A question and a suggestion follow.

In the subsection "Schema Information Set Contribution: Identity-constraint Table", I believe "key sequence k" should be changed to "key sequence b". If not, then please explain the relationship between the b & k key sequences.

[On 17 March 2000 Henry Thompson replies: You're right about the typo, that should be 'key sequence k' throughout."]

Part of the difficulty in understanding the definition of the Identity-Constraint table is that the document tries to describe in prose both what the table is and how to construct it at the same time. I tried to translate the prose into a pseudo-code specification (see below). If we assume that a node table is is a table of (key-sequence, qualified-node) pairs and is keyed on key-sequence, we can compute a new node table for element E, eligible constraint C as follows:

fun nodeTable(E, C) {
  let /* compute node table for element E & constraint C */

      table = UNION(forall (keyseq, qualnode) in eligibleConstraint(E,C))
      /* inherit non-conflicting constraints from children */
      kidsTable  = UNION(forall K in children(E), nodeTable(K, C))
      inheritTable = kidsTable - table
  in table UNION inheritTable
}
// inheritTable is really a project on key-sequence, difference of the
// two tables and then a join with kidsTable to reconstruct the
// inherited table.

You might not want to present the definition in such a form, but for anyone who must implement or use the Schema definition (such as the Query working group), this is precisely what must be inferred.

[On 5 April 2000, Henry Thompson replied: "As near as I can tell your algorithm is correct, and the example infoset is also correct."]

A. Abbreviated Example Data (same Schema as in full example)

<purchaseReport>
  <regions>
    <zip code="95819"> 
      <part number="872-AA"/> 
      <part number="455-BX"/>  
   </zip>
    <zip code="63143"> 
      <part number="455-BX"/> 
   </zip>
 </regions>
  <parts>
    <part number="872-AA">Lawnmower</part>  
    <part number="455-BX">Sturdy Shelves</part> 
  </parts>
</purchaseReport>

B. Information-Set Instance for Example Data in A. This is an XML serialization of the infoset instance.

<is:Document id="document#0">
  <is:children>
    <is:ref idref="element#0"/>
    <!-- reference to infoset item for schema -->
    <psvis:schema idref="schema#0"/>
  </is:children>
</is:Document>

<is:Element is:id="element#0">
  <is:localName>purchaseReport</is:localName>
  <is:children>
    <is:ref idref="element#1">
    <is:ref idref="element#7">
  </is:children>

  <psvis:identityConstraintTable>
    <!-- Skip <unique> constraint -->
    <!-- Constraint : <key name="pNumKey">  --> 
    <psvis:identityConstraint>
      <!-- reference to infoset item for 
       <key name="pNumKey"> -->
      <is:ref idref="identityConstraint#0"/>
    </psvis:identityConstraint>
    <psvis:nodeTable>
      <psvis:keySequence>
        <!-- number="872-AAA" -->
        <is:ref idref="attribute#5"/>
      </psvis:keySequence>
      <psvis:qualifiedNode>
        <is:ref idref="element#8"/>
      </psvis:qualifiedNode>

      <psvis:keySequence>
        <!-- number="455-BX" -->
        <is:ref idref="attribute#6"/>
      </psvis:keySequence>
      <psvis:qualifiedNode>
        <is:ref idref="element#9"/
      </psvis:qualifiedNode>
    </psvis:nodeTable>

    <!-- Constarint : <keyref refer="pNumKey"> --> 
    <psvis:identityConstraint>
      <!-- reference to infoset item for
       <keyref refer="pNumKey">...</key> -->
      <is:ref idref="identityConstraint#1"/>
    </psvis:identityConstraint>
    <psvis:nodeTable>
      <psvis:keySequence>
        <!-- number="872-AAA" -->
        <is:ref idref="attribute#1"/>
      </psvis:keySequence>
      <psvis:qualifiedNode>
        <is:ref idref="element#8"/>
      </psvis:qualifiedNode>

      <psvis:keySequence>
        <!-- number="455-BX" -->
        <is:ref idref="attribute#2"/>
      </psvis:keySequence>
      <psvis:qualifiedNode>
        <is:ref idref="element#9"/
      </psvis:qualifiedNode>

      <psvis:keySequence>
        <!-- number="455-BX" -->
        <is:ref idref="attribute#4"/>
      </psvis:keySequence>
      <psvis:qualifiedNode>
        <is:ref idref="element#9"/
      </psvis:qualifiedNode>
    </psvis:nodeTable>
  </psvis:identityConstraintTable>
</is:Element>

<is:Element is:id="element#1">
  <is:localName>regions</is:localName>
  <is:children>
    <is:ref idref="element#2"/>
    <is:ref idref="element#5"/>
  </is:children>
</is:Element>

<is:Element is:id="element#2">
  <is:localName>zip</is:localName>
  <is:attributes>
    <is:ref idref="attribute#0"/>
  </is:attributes>
  <is:children>
    <is:ref idref="element#3"/>
    <is:ref idref="element#4"/>
  </is:children>
</is:Element>

<is:Element is:id="element#3">
  <is:localName>part</is:localName> 
  <is:attributes>
    <is:ref idref="attribute#1/>
  </is:attributes>
</is:Element>

<is:Element is:id="element#4">
  <is:localName>part</is:localName> 
  <is:attributes>
    <is:ref idref="attribute#2/>
  </is:attributes>
</is:Element>

<is:Element is:id="element#5">
  <is:localName>zip</is:localName>
  <is:attributes>
    <is:ref idref="attribute#3"/>
  </is:attributes>
  <is:children>
    <is:ref idref="element#6"/>
  </is:children>
</is:Element>

<is:Element is:id="element#6">
  <is:localName>part</is:localName> 
  <is:attributes>
    <is:ref idref="attribute#4/>
  </is:attributes>
</is:Element>

<is:Element is:id="element#7">
  <is:localName>parts</is:localName> 
  <is:children>
    <is:ref idref="element#8"/>
    <is:ref idref="element#9"/>
  </is:children>
</is:Element>

<is:Element is:id="element#8">
  <is:localName>part</is:localName> 
  <is:attributes>
    <is:ref idref="attribute#5/>
  </is:attributes>
  <is:children>
    <!-- references to CDATAItems for "Lawnmower" -->
  </is:children>
</is:Element>

<is:Element is:id="element#9">
  <is:localName>part</is:localName> 
  <is:attributes>
    <is:ref idref="attribute#6/>
  </is:attributes>
  <is:children>
    <!-- references to CDATAItems for "Sturdy Shelves" -->
  </is:children>
</is:Element>

<is:Attribute is:id="attribute#0">
  <is:localName>code</is:localName>
  <value>95819</value>
</is:Attribute>

<is:Attribute is:id="attribute#1">
  <is:localName>number</is:localName>
  <value>872-AA</value>
</is:Attribute>

<is:Attribute is:id="attribute#2">
  <is:localName>number</is:localName>
  <value>455-BX</value>
</is:Attribute>

<is:Attribute is:id="attribute#3">
  <is:localName>number</is:localName>
  <value>872-AA</value>
</is:Attribute>

<is:Attribute is:id="attribute#4">
  <is:localName>number</is:localName>
  <value>455-BX</value>
</is:Attribute>

Actual Resolution

This issue was discussed and resolved together with issue LC-159; see there for details of decisions in this area.

Formal response.

LC-11. date-time-period: Date and time period

Issue Class: C Locus: datatypes Cluster: 04 datetime Status: silent
Assigned to: editor Originator: Aram Airapetian

Description

Should the date and time types have the same value for period?

Interactions and Input

Input from Aram Airapetian:

(Aram Airapetian to XML Schema Comments list, 30 March 2000)

How come the date and the time types have the same period? The "000000T2400" value is period for time. It is 'unit' for date, though. For date (CCYY-MM-DD, see 3.3.22.1) period is "010000". Am I missing something?

The notions of 'period' and 'unit' might be beneficial for simplification of numeric type definition. All types 3.2.2 - 3.2.5 and 3.3.9 - 3.3.21 could be defined (derived from decimal) by assigning corresponding 'period', 'unit' and 'signed/unsigned' constraints.

Input from Ashok Malhotra:

My apologies for taking so long to reply to your note below. We have made some changes to the text and corrected some typos. Now, "date" has a period of 0 (no recurrence) and a duration of 24hours. "time" has a period of 24 hours and a duration of zero. I trust that addresses your concerns.

Actual Resolution

Formal response to commentator.

LC-12. exporting-attributes: How can a module creator make attributes available to other modules?

Issue Class: A Locus: structures Cluster: 19 modules Status: silent
Assigned to: Dan Connolly Originator: Aaron M. Cohen

Description

How does a schema author go about adding new attributes to elements declared in a different module?

Interactions and Input

Input from Aaron M. Cohen:

(Aaron M. Cohen to XML Schema Comments list, 3 April 2000)

It has recently been brought to my attention that the current draft of XML-Schemas does not provide a mechanism for incrementally building up an attribute set on an element, perhaps from several separate modules containing attributes, and also for adding attributes to elements already declared.

This is essential for modularizing SMIL with XML Schemas, and is something that can (and has) already be done with DTD's. Maybe my information is incorrect, or my understanding is faulty, so I am sending this to make you aware of our needs, and asking for guidance in applying XML Schemas in this manner. If my information and understanding are correct, then please consider this a requirement for the SMIL modules to have associated XML Schemas. I am under the impression that XHTML has very similar needs, and my impression is based in part on my exchanges with some of the XHTML folks.

A concrete example will probably make our needs clear. So I'll discuss our modularization needs in the context of a vastly simplified view of SMIL.

SMIL timing is a set of reusable modules that can be used to incorporate timing relationships into XML languages. This language could be "SMIL", or "XHTML", or something else. We provide time containers, which are grouping elements that contain other elements and provide semantics for the timing relationships between the grouped elements. We also provide attributes that are added to elements to allow authors to specify explicit timing relationships.

For example, SMIL includes the parallel time container, <par>, which allows for several things to be played at once. To play an audio and video clip and the same time (assuming that the language, like SMIL 1.0, includes elements to express playing each of these):

<par> 
 <video .../>
 <audio .../>
</par>

Note that the elements could be from some other language, such as XHTML. Here's how two paragraphs of text might be displayed at the same time:

<par>
<p>First Paragraph.</p>
<p>Second Paragraph.</p>
</par>

This becomes much more powerful when the elements that are timed can have their own timing-specific attributes. For this discussion, we'll only have two. 'begin' tells when to start displaying something, and 'dur' specifies the duration, or how long to display it. Building off the XHTML example:

<par>
<p begin="0s" dur="1s">First Paragraph.</p>
<p begin="2s" dur="1s">Second Paragraph.</p>
</par>

This displays the first paragraph immediately for 1 second, then there is one second where nothing is displayed, and then at time=2s, the second paragraph is displayed for 1 second.

This admittedly very simple example gets to the root of what we need to be able to accomplish with XML Schemas. The <p> element is already defined in a module by XHTML. For a language designer to be able to incorporate or combine timing with elements already defined, we need to be able to extend the attribute set of an element defined in a different module. For this particular example, the language designer needs an XML Schema method of adding the begin and dur attributes defined in a SMIL XML Schema module to the <p> element defined in an XHTML Schema module. It is not sufficient to just be able to declare the members of an attribute set from several places when the element is initially defined.

Please feel free to contact me with any questions you may have about anything that I have said here.

Input from Dan Connolly <connolly@w3.org>:

Dan Connolly <connolly@w3.org> to XML Schema Comments list on Fri, 12 May 2000 17:18:11 -0500

It has recently been brought to my attention that the current draft of XML-Schemas does not provide a mechanism for incrementally building up an attribute set on an element, perhaps from several separate modules containing attributes,

I believe the attribute group mechanism provides this. http://www.w3.org/TR/2000/WD-xmlschema-1-20000407/#Attribute_Group_Definition

and also for adding attributes to elements already declared.

I presume you're talking about this idiom...

"6.1. Defining additional attributes [...] This works because XML permits the definition or extension of the attribute list for an element at any point in a DTD. " http://www.w3.org/TR/2000/WD-xhtml-building-20000105/developing.html#s_dev_attrs

The Schema spec provides an analog of this idiom; if you want your element declarations to allow other attributes this way, just include

<anyAttribute namespace="##any" processContents="strict"/>

cf http://www.w3.org/TR/2000/WD-xmlschema-1-20000407/#element-anyAttribute

I would actually recommend ##other rather than ##any; requiring "mixed in attributes" to be declared as coming from another namespace seens more appropriate than allowing unqalified attributes or attributes from the same namespace.

This is essential for modularizing SMIL with XML Schemas, and is something that can (and has) already be done with DTD's.

Well... it can be done with a specific set of conventions layered on top of DTDs, using parameter entities. It cannot be done for arbitrary combinations of DTDs. And the XHTML modularization mechanisms are susceptible to name collisions between modules.

cf http://www.w3.org/TR/2000/WD-xhtml-building-20000105/developing.html#s_dev_attrs

Maybe my information is incorrect, or my understanding is faulty, so I am sending this to make you aware of our needs, and asking for guidance in applying XML Schemas in this manner. If my information and understanding are correct, then please consider this a requirement for the SMIL modules to have associated XML Schemas. I am under the impression that XHTML has very similar needs, and my impression is based in part on my exchanges with some of the XHTML folks.

A concrete example will probably make our needs clear.

Yes, thanks.

So I'll discuss our modularization needs in the context of a vastly simplified view of SMIL.

SMIL timing is a set of reusable modules that can be used to incorporate timing relationships into XML languages.

I started drafting a schema for SMIL animation; see: http://www.w3.org/XML/2000/04schema-hacking/smil-animation.xsd, revision 1.1, date: 2000/05/04 19:35:09, aka http://www.w3.org/XML/2000/04schema-hacking/smil-animation.xsd.txt

This language could be "SMIL", or "XHTML", or something else. ...

This admittedly very simple example gets to the root of what we need to be able to accomplish with XML Schemas. The <p> element is already defined in a module by XHTML. For a language designer to be able to incorporate or combine timing with elements already defined, we need to be able to extend the attribute set of an element defined in a different module.

Or, alternatively, you need the definition of the P element to allow attributes declared elsewhere (as noted above, this is the default in XML 1.0)

I mocked up this example... http://www.w3.org/XML/2000/04schema-hacking/h+s.html

<html
 xmlns="http://www.w3.org/1999/xhtml"
 xmlns:xsi='http://www.w3.org/1999/XMLSchema-instance'
 xmlns:t='http://www.w3.org/2000/TR/smil-animation10'
 xsi:schemaLocation="http://www.w3.org/1999/xhtml html.xsd
         http://www.w3.org/2000/TR/smil-animation10 smil-animation.xsd
                "
  >
<head><title>Example of mixing HTML and SMIL timing</title></head>
<body><h1>Some stuff</h1>
<!-- example from 
http://www.w3.org/TR/NOTE-HTMLplusTIME -->

<p t:begin="1">
         This is a paragraph of text that appears after one second
     </p>
     <p t:begin="2">
         This is a paragraph of text that appears after two seconds
     </p>
     <p t:begin="3">
         This is a paragraph of text that appears after three seconds
     </p>

</body>
</html>

(The schemaLocation gobbledygook is only necessary until schemas for XHTML and SMIL are available by dereferencing their namespace identifiers)

then in html.xsd: (i.e. http://www.w3.org/XML/2000/04schema-hacking/html.xsd)

 <element name='p'>
  <complexType content='mixed'>
   <anyAttribute namespace="##other" processContents="strict"/>
    [...]
  </complexType>
 </element>

and in smil-animation.xsd :

   <attribute name='begin' type='string'/>
   <attribute name='dur' type='string'/>
   <attribute name='end' type='string'/>
   <attribute name='restart'>
    <simpleType base='string'>
     <enumeration value='always'/>
     <enumeration value='never'/>
     <enumeration value='whenNotActive'/>
    </simpleType>
   </attribute>
   <attribute name='repeatCount' type='string'/>
   <attribute name='repeatDur' type='string'/>
   <attribute name='fill'>
    <simpleType base='string'>
     <enumeration value='remove'/>
     <enumeration value='freeze'/>
    </simpleType>
   </attribute>

You can check the results using http://cgi.w3.org/cgi-bin/xmlschema-check i.e. http://cgi.w3.org/cgi-bin/xmlschema-check?docAddrs=http%3A%2F%2Fwww.w3.org%2FXML%2F2000%2F04schema-hacking%2Fh%2Bs.html

I have used qualified names for the "mixed in" attributes, per this principle:

"The syntax must unambiguously associate an identifier in a document with the related schema without requiring inspection of that or another schema." -- http://www.w3.org/TR/1998/NOTE-webarch-extlang-19980210#Ambiguity

The schema spec allows you to violate that principle by using <anyAttribute namespace="##any"/> on the P element declaration, and and attributeForm="unqualified" in the smil-animation schema, but I don't recommend that.

For this particular example, the language designer needs an XML Schema method of adding the begin and dur attributes defined in a SMIL XML Schema module to the <p> element defined in an XHTML Schema module.

I believe I have demonstrated this above.

It is not sufficient to just be able to declare the members of an attribute set from several places when the element is initially defined.

... To this end, we need confirmation that it can be done with XML Schemas, and guidance in how to proceed.

Does the explanation above provide enough confirmation and guidance?

I've been told to expect a note on modularization using XML Schemas. Will our use cases be covered in that note?

I'm not sure.

Input from Cohen, Aaron M <aaron.m.cohen@intel.com>:

"Cohen, Aaron M" <aaron.m.cohen@intel.com> to XML Schema Comments list on Mon, 15 May 2000 15:31:05 -0700

Dan:

Thanks for taking a look at this. I'll take a closer look at your SMIL Animation Schema later this week when I have a chance.

Meanwhile, I have a question. You integrated the SMIL timing attributes with the "P" element by making your own version of xhtml.xsd that allowed including qualified attribute names from other schemas. I'm not sure that this is a total solution.

However, in my understanding of our discussion of namespaces, I got the impression that redefining elements to include new content and/or attributes and then "putting" those elements in a "new" namespace was okay. So it seems that you can define hybrid languages, it's just that they don't have a "lineage" reflected in a namespace structure, or in an XML Schema structure (because the attributes on an element can only be defined in one place).

This will lead to integrations that need to be done very differently in DTD's vs. XML Schemas. What I mean is that in some cases, the schema will have to repeat a lot of stuff defined in a "base" schema, while the DTD will not. The case in point is XHTML+SMIL, which it seems, will have to repeat the definitions of all of the XHTML-based elements, add the timing attributes (which can be done nicely in attribute groups in the smil modules), and declare them in a new namespace. So while there will be very tight semantics coupling between XHTML and XHTML+SMIL, this coupling will not be reflected in either the namespace or the schema for XHTML+SMIL.

About the best that I think could be done is if the XHTML-WG creates "proto-HTML" types that can be used in the derived languages to define the actual elements.

I think that you can do something like this for timed <a> link's (correct me if I am wrong):

In the XHTML.xsd:

<xsd:complexType content="mixed" name="aType">
	<xsd:attribute name="href" type="xsd:uriReference"/>
	...other linking attribute declarations
</xsd:complexType>

In the SMIL.xsd:

<xsd:attributeGroup name="smilTimingAttrs" />
	<xsd:attribute name="begin" type="xsd:string"/>
	<xsd:attribute name="end" type="xsd:string"/>
	...other timing attribute declarations
</xsd:attributeGroup>

And then in the XHTML+SMIL.xsd:

<xsd:element name="a" type="xhtml:aType">
	<xsd:attributeGroup ref="smilTimingAttrs"/>
</xsd:element> 

Of course, the means to do this has to be set up in XHTML.xsd and SMIL.xsd. I can see us doing this kind of thing for SMIL, but of course the other stuff is up to XHTML, SVG, and the other XML-based languages using XML Schemas.

Input from Dan Connolly:

Meanwhile, I have a question. You integrated the SMIL timing attributes with the "P" element by making your own version of xhtml.xsd that allowed including qualified attribute names from other schemas.

Yes, I expect the "official" XHTML schema to work that way.

I'm not sure that this is a total solution.

However, in my understanding of our discussion of namespaces, I got the impression that redefining elements to include new content and/or attributes and then "putting" those elements in a "new" namespace was okay. So it seems that you can define hybrid languages, it's just that they don't have a "lineage" reflected in a namespace structure, or in an XML Schema structure (because the attributes on an element can only be defined in one place).

Not so: (a) as I say, I expect the XHTML schema to allow anyAttribute namespace="#other" in the first place, and (b) if you did create a new XHTML namespace, you certainly could design it so that it has a discoverable "lineage", i.e. it derived from the canonical XHTML schema.

This will lead to integrations that need to be done very differently in DTD's vs. XML Schemas. What I mean is that in some cases, the schema will have to repeat a lot of stuff defined in a "base" schema, while the DTD will not.

I don't know what leads you to think that; it's not so.

The case in point is XHTML+SMIL, which it seems, will have to repeat the definitions of all of the XHTML-based elements, add the timing attributes (which can be done nicely in attribute groups in the smil modules), and declare them in a new namespace. So while there will be very tight semantics coupling between XHTML and XHTML+SMIL, this coupling will not be reflected in either the namespace or the schema for XHTML+SMIL.

About the best that I think could be done is if the XHTML-WG creates "proto-HTML" types that can be used in the derived languages to define the actual elements.

I certainly expect the HTML WG to use things like <anyAttribute namespace="#other"> to specify that XHTML is extensible.

I think that you can do something like this for timed <a> link's (correct me if I am wrong): ...

Yes, that's another way to design a schema for XHTML+SMIL.

But I hope that we don't use that approach; as you say:

Of course, the means to do this has to be set up in XHTML.xsd and SMIL.xsd. I can see us doing this kind of thing for SMIL, but of course the other stuff is up to XHTML, SVG, and the other XML-based languages using XML Schemas.

I think it's clearly preferable to have one schema for XHTML, one for SMIL, one for SVG, and one for MathML that can be used together in compound documents; rather than one for XHTML+MathML, one for XHTML+MathML+SVG, etc. for a total of N! schemas.

Actual Resolution

See clarifications above.

LC-13. extending-content-models: How can a module creator add things to content models in other modules?

Issue Class: A Locus: structures Cluster: 19 modules Status: ok
Assigned to: Sperberg-McQueen Originator: Aaron M. Cohen

Description

How does a schema author go about adding new elements as children of elements declared in a different module?

Interactions and Input

Input from Aaron M. Cohen:

(Aaron M. Cohen to XML Schema Comments list, 3 April 2000)

The same thing goes for the content model of the elements. It may be necessary to extend the permissible child element set of a module beyond how it was initially defined. SMIL Boston is planning on using "levels" of modules. As the functionality goes up in higher levels, we add some elements to the set of allowed children. As above, we'll also add new attributes to existing elements in order to make them more powerful in the higher level modules.

Furthermore, we will use the above process to define our next version of the SMIL Language, and also to define a language/profile that combines XHTML and SMIL timing structure (as well as some other aspects of SMIL), and to define a baseline "SMIL-Basic". So you can see that the use case that we are asking for is a key element in SMIL being a successful and reusable technology. The DTD experts in the group are comfortable that we can produce DTD's that reflect this structure, and we would also like to have a set XML Schemas before SMIL becomes a Recommendation. To this end, we need confirmation that it can be done with XML Schemas, and guidance in how to proceed. I've been told to expect a note on modularization using XML Schemas. Will our use cases be covered in that note?

Please feel free to contact me with any questions you may have about anything that I have said here.

Actual Resolution

Formal response to commentator.

Aaron Cohen replies that "Yes, I think that the answer below is sufficient for advance into CR, but I do think that the director should be aware of the difficulties in using XML Schemas for the modular design of reusable technology and "langauge families" and I'd like to see more experience with that as a requirement of XML Schemas coming out of CR. In particular, it is important that someone write a modular XHTML to show that it can be done in a useful and acceptable manner."

LC-14. xPath: Define an XPath type

Issue Class: D Locus: datatypes Cluster: 15 xpath Status: silent
Assigned to: Don Box Originator: Curt Arnold

Description

Should XML Schema define a built-in type for XPath?

Interactions and Input

Input from Curt Arnold:

(Curt Arnold to XML Schema Comments list, 6 April 2000)

It would seem a minimal burden to add a built-in datatype that allows you to declare an attribute (or element content) as conceptually being an XPath. Since XPath is intended to be used across W3C technologies, it would seem that the best place for it would be as a built-in type in Schema instead of every technology that uses it trying to kludge it with their own regular expressions.

<datatype base="string" name="XPath"/>

The difficulty is in the implied validation a schema aware processor is expected to do when it encounters an attribute that uses an XPath or derived datatype (in the same manner the parser is anticipated to validate that a uri or Qname is valid beyond what is in the explicit Schema for Schema definitions). If that seems like too much complexity, you could except conforming processors from doing any implied validation of XPath's. But compared to the overall complexity of Schema, an XPath type validation seems fairly trivial.

Proposed Resolution

Noah_Mendelsohn@lotus.com to XML Schema Comments list, Tue, 18 Apr 2000 11:48:26 -0400

Just my opinion, not speaking for the WG or anyone else, but I think that an XPath datatype would be a fine thing for the XSL workgroup to declare. I think it is a mistake to ask schemas to go too far down the road in baking in every string-type that is motivated by some other W3C spec. Schemas gives other groups the power to create their own target namespaces, and to publish schemas with the appropriate type definitions. As noted below, validation of XPath strings can at best be somewhat loose, but you can easily provide a standard W3C-wide means to express that a string is intended as an XPath. Admittedly, there is a slight circularity in the fact that schemas makes some use of XPath in structures. I would still prefer to do the architecturally correct thing, and get the XSL WG lined up to publish an XPath type if the world needs one. I would like to believe that we could sort out the corresponding trivial change to the schema for schemas during the CR period. In general, groups that own particular namespaces should own the schemas for the corresponding datatypes, I think. Yes, there is room for exceptions for convenience.

Actual Resolution

Discussed in call of 2000-06-29.

A straw poll showed a preponderance of opinion against defining an XPath data type (4 in favor, 11 opposed).

RESOLVED: to dispose of issue LC-14 by saying no (with rationale). Dissenting: Beech, Biron, Jelliffe, Peterson, Robie, Sperberg-McQueen.

Rationale for the decision: if there should be such a datatype, it should be defined as part of the XPath specification, not as part of XML Schema.

Rationale for the dissent (at least Sperberg-McQueen's): there should be such a datatype, we cannot now arrange for it to be defined in an XPath spec which is already a recommendation, and schema processors are already required to be able to type-check strings purported to be XPath expressions, so there is no additional implementation burden.

Formal response to commentator.

LC-15. initial-value-hints: Allow hints for initial value of an attribute?

Issue Class: A Locus: structures Cluster: 14 attldecl Status: silent
Assigned to: Sperberg-McQueen Originator: Curt Arnold

Description

Should XML Schema provide a mechanism to allow a schema author to provide an initial or hint value for an element or attribute, which would be used by user interfaces but which unlike a default value would not add anything to the information set?

Interactions and Input

Input from Curt Arnold:

(Curt Arnold to XML Schema Comments list, 6 April 2000)

I meant to mention this at XTech, but it may be useful to allow for element and attribute a way that a