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 user agent could obtain an initial or hint value for an element or attribute that didn't add anything to the information set. Possibly something like:

<!-- For 'element' and 'attribute' -->
  <attributeGroup name="valueConstraint">
    <attribute name="default" type="string"/>
    <attribute name="fixed" type="string"/>
    <attribute name="initial" type="string"/>
  </attributeGroup>

When initial is specified, a user agent may use it to provide a initial value for a user interface field, but an XML processor doesn't use it to provide a value if it isn't specified.

<element name="order">
  <attribute name="quantity" type="non-negative-integer" initial="1"/>
  <attribute name="item" type="uri-Reference"/> 
</order>

This could result in a Schema generated UI having a quantity field with initialized to 1, but would not result in:

<order item="http://www.buyme.com/item.xml?5555"/>

being interpreted as having a quantity of 1.

Explicitly supporting this hint in XML Schema might make things a little cleaner with XForms which is using default to mean what I called initial.

Actual Resolution

Formal response to commentator.

LC-16. all-with-n-gt-1: Allow arbitrary order with occurrence > 1?

Issue Class: D Locus: structures Cluster: 24 content-models Status: nok
Assigned to: Matt Timmermans Originator: Martin J. Duerst

Description

Should the all group allow occurrence indicators with maxOccurs > 1?

Interactions and Input

Cf. Contents which may occur in any order

Input from Martin J. Duerst:

(Martin Duerst to XML Comments list, 7 April 2000)

On the XML schema side, if it's currently not possible to express arbitrary order with occurrence constraints, that may be a problem independent of whether P3P needs it; I'm sure there are other uses where this is a requirement.

Input from Yuichi Koike:

"Yuichi Koike" <koike@w3.org> to XML Schema Comments list, Tue, 18 Apr 2000 14:00:30 -0400

Though P3P WG decided to have fixed the element order in P3P 1.0 spec, we would like XML schema to have the ability to express arbitrary element order in a compact form.

And the answer to the following question is "Yes".

At 00/04/04 22:12 +0100, Henry S. Thompson wrote:

If what you want is arbitrary order, just what do you mean by that, e.g. , is the following OK?

 
<extension>...</extension>
<statement>...</statement> 
<disclosure>...</disclosure>
<statement>...</statement> 
<extension>...</extension>
<statement>...</statement>

The above question is pressing, if you want the WG to consider "arbitrary order with occurrence constraints", we really need clear input on this.

Actual Resolution

Discussed in call of 2000-07-20.

The question is whether to allow maxOccurs > 1 inside an all-group. If so, do we require that the occurrences of a given element type be contiguous (as in SGML) or not (counting just the overall number of occurrences of the type)?

RESOLVED: to close LC-16 with polite no. Dissenting: Peterson.

Rationale: complexity, the fact that the interpretation usually desired is incompatible with that of SGML's ampersand connector, and the feeling on the part of some WG members that this is not a pattern of document design to be recommended or supported. Formal response to commentator.

Martin Duerst replies that he is "not at all satisfied".

LC-17. regex-bnf: Give BNF for regular-expression language?

Issue Class: C Locus: datatypes Cluster: regex Status: silent
Assigned to: editor Originator: TAMURA Kent, Alexander Falk

Description

Should the datatypes spec give a formal definition in BNF or EBNF (or some similar formalism) for the regular-expression language?

Interactions and Input

Input from TAMURA Kent:

(TAMURA Kent to XML Schema Comments list, 10 April 2000)

I have some comments on the regular expressions section in the last call draft.

Re: The entire It is hard to know concrete syntax of the regular expression from the draft. I want readable rules like BNF.

Input from Alexander Falk:

Alexander Falk to XML Schema Comments list, 11 April 2000

I would certainly also hope to see a compact EBNF description for the Regular Expressions in the final draft - for the time being I have created my own condensed version for use in our own development, which I'll gladly share with you:

regExp         ::= branch ('|' branch)*  >Regular Expression (branch|branch|...)
branch$        ::= piece+                >Branch (piece+)
piece$         ::= atom quantifier?      >Piece (atom quantifier?)
quantifier$    ::= [?*+] 
                 | ( '{' quantity '}' )  >Piece quantifier (? | * | + | {quantity})
quantity$      ::= quantRange 
                 | quantMin 
                 | QuantExact            >Numeric quantity

quantRange$    ::= QuantExact ',' QuantExact >Quantity range {n,m}

quantMin$      ::= QuantExact ','        >Minimum quantity {n,}
QuantExact$    ::= [0-9]+                >Exact quantity {n}
atom$          ::= Char 
                 | charClass 
                 | ( '(' regExp ')' )    >Atom (char | charclass | (regexp))
Char$          ::= [^.\?*+()|#x5B#x5D]   >Normal character (any non-metacharacter)
charClass      ::= charClassEsc 
                 | charClassExpr         >Character class (escape | expression)
charClassExpr$ ::= '[' charGroup ']'     >Character class expression ( [charGroup] )
charGroup      ::= negCharGroup 
                 | posCharGroup 
                 | charClassSub          >Character group
negCharGroup$  ::= '^' posCharGroup      >Negative character group
charClassSub$  ::= ( posCharGroup | negCharGroup ) '-' charClassExpr
                                         >Character class subtraction
posCharGroup$  ::= ( charRange | charClassEsc )+
                                         >Positive character group (character range | character class escape)+
charRange$     ::= seRange 
                 | XmlCharRef 
                 | XmlChar               >Character range (XML character|s-e range)
seRange$       ::= charOrEsc '-' charOrEsc
                                         >s-e character range
charOrEsc$     ::= XmlChar 
                 | SingleCharEsc         >XML character or single-character escape
XmlChar$       ::= [^\#x2D#x5B#x5D]      >XML character (all except \[])
XmlCharRef     ::= ('&#' [0-9]+ ';') 
                 | ('&#x' [0-9a-fA-F]+ ';')
                                         >Character-Reference (&#217; or &#xEA;)
charClassEsc   ::= ( SingleCharEsc | MultiCharEsc | catEsc | complEsc )
                                         >Character class escape
SingleCharEsc  ::= '\' [nrt\.?*+()|{}#x2D#x5B#x5D#x5E]
                                         >Single character escape
MultiCharEsc   ::= '.' 
                 | ('\' [sSiIcCdDwW])    >Multi-character escape
catEsc$        ::= '\p{' charProp '}'    >Category escape
complEsc$      ::= '\P{' charProp '}'    >Category escape compliment
charProp$      ::= Letters 
                 | Marks 
                 | Numbers 
                 | Punctuation 
                 | Separators 
                 | Symbols 
                 | Other 
                 | IsBlock          >Unicode character property
IsBlock        ::= 'Is' [a-zA-Z]+   >Unicode block name
Letters        ::= 'L' [ultmo]?     >Unicode letters category
Marks          ::= 'M' [nce]?       >Unicode marks category
Numbers        ::= 'N' [dlo]?       >Unicode numbers category
Punctuation    ::= 'P' [cdseifo]?   >Unicode punctuation category
Separators     ::= 'Z' [slp]?       >Unicode separators category
Symbols        ::= 'S' [mcko]?      >Unicode symbols category
Other          ::= 'C' [cfson]?     >Unicode other category

Actual Resolution

Formal response to commentator.

Formal response to second commentator.

LC-18. regex-subtraction: Clarify character-set subtraction?

Issue Class: C Locus: datatypes Cluster: regex Status: silent
Assigned to: editor Originator: TAMURA Kent

Description

Should the discussion of regular expressions explain how to use character-class subtraction?

Interactions and Input

Input from TAMURA Kent:

(TAMURA Kent to XML Schema Comments list, 10 April 2000)

Re: Character class subtraction E.1:

[Definition:] A character class subtraction is a character class expression subtracted from a positive character group or negative character group, using the - character.

This definition does not explain how to use '-'. The next paragraph says "G-C is a valid character class subtraction", but there are no restriction on other usages of '-', like "GC-", "-GC" :-)

Actual Resolution

Formal response to commentator.

LC-19. regex-range: Make - unambiguous in regexes?

Issue Class: C Locus: datatypes Cluster: regex Status: silent
Assigned to: editor Originator: TAMURA Kent

Description

Should the datatypes spec be revised in order to make the minus sign unambiguous in regular expressions?

Interactions and Input

Input from TAMURA Kent:

(TAMURA Kent to XML Schema Comments list, 10 April 2000)

Re: '-' in character range A '-' in a character class has many meanings. So, interpretation of '-' can be ambiguous. For example:

[+--/]

We can interpret this character class as:

  • '+' to '-', and '/'
  • '+', and '-' to '/'

Actual Resolution

Formal response to commentator.

LC-20. regex-multichar-escape: Clean up definition of multi-character escape?

Issue Class: C Locus: datatypes Cluster: regex Status: silent
Assigned to: editor Originator: TAMURA Kent

Description

Should the definition of multi-character escape in regular expressions be revised to avoid giving the impression that &#x0000 and &#xFFFF are valid character references in XML?

Interactions and Input

Input from TAMURA Kent:

(TAMURA Kent to XML Schema Comments list, 10 April 2000)

Re: Definition of multi-character escape: "\w" is defined as "[&#x0000;-&#xFFFF;]-[\p{P}\p{S}\p{C}]", but both of &#x0000; and &#xFFFF; are invalid character references in XML. I don't know characters in &#x10000;-&#x10FFFF; should be in "\w".

Actual Resolution

Formal response to commentator.

LC-21. non-gregorian-dates: Allow non-gregorian dates?

Issue Class: D Locus: datatypes Cluster: 27 i18n-datetime Status: silent
Assigned to: Sperberg-McQueen Originator: David RR Webber

Description

Should XML Schema define, or allow the definition of, non-Gregorian date types?

Interactions and Input

Input from David RR Webber:

(David RR Webber to XML Schema IG, 2 May 2000 -- member only)

[This is of immense importance: many people live their lives organized around non-gregorian calendars. A neutral date-time code (e.g. days and seconds since some epoch) would solve the problem.]

Actual Resolution

This issue was subsumed by a proposal to introduce abstract simple types (including an abstract date type), from which schema authors could derive concrete types with variant lexical forms. The abstract-type proposal was raised at the Edinburgh face to face (June 2000), discussed extensively in email (the i18n WG in particular was strongly opposed to it), adopted on the basis of a task-force proposal at the Redmond meeting (August 2000), and then rejected after the editors reported difficulties integrating it into the specification.

The net result is that there is no provision, in XML Schema 1.0, for the definition of dates using calendars other than the Gregorian, or lexical forms other than that of ISO 8601. Many members of the WG were sympathetic to the goal of allowing each of these, but the WG as a whole was of the opinion that such provisions, with the design work necessary to support them, were better left for a later version of XML Schema, and that the abstract-type proposal caused too many undesirable side effects in our type system to be introduced in XML Schema 1.0.

Formal response to commentator.

LC-22. glossary: Where's the glossary?

Issue Class: C Locus: both Cluster: publication Status: silent
Assigned to: editor Originator: Murray Altheim

Description

Should a glossary for XML Schema be prepared before the spec is promoted to CR? to PR?

Interactions and Input

Input from Murray Altheim:

(Murray Altheim to XML Schema IG, 5 May 2000 [member only])

[A glossary would be a big help.]

Input from Joseph M. Reagle Jr. <reagle@w3.org>:

"Joseph M. Reagle Jr." <reagle@w3.org> to XML Schema Comments list on Wed, 10 May 2000 12:48:14 -0400

Glossary; and Model Groups, Model Group Definitions, and Element Declarations

I find the distinction between these things confusing, perhaps it could be simplified or more text could be spent on describing how these things are different. Actually, I look forward to the glossary being completed as this will help me in understanding the specification. See http://lists.w3.org/Archives/Public/xmlschema-dev/2000Apr/0021.html for more:

Actual Resolution

Formal response to commentator.

LC-23. namespace-date: Use 2000 not 1999 in XML Schema namespace name?

Issue Class: D Locus: both A Cluster: 21 sfs Status: ok
Assigned to: Dan Connolly Originator: Alexander Falk

Description

Should the namespace for XML Schema use the date 1999 or the date 2000?

Interactions and Input

Cf. XML Schema Namespace versioning

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

I was studying the new April 7 version of the XML Schema working draft throughout the weekend, as we are in the process of finalizing the beta 3 version of XML Spy 3.0 (see http://www.xmlspy.com/version30.asp), and I have a first list of comments and questions - especially regarding the changes to the datatypes (part 2).

Part 1 - Structures

A. Schema for Schemas

Why does the Public Identifier URN for the DOCTYPE statement still use 19991216 as its date, when the DTD for Schemas (Appendix B) is v1.1 dated 2000/04/06. This Public Identifier URN seems to imply that the Schema for Schemas is itself written in compliance with the old December 1999 XML Schema draft, which it is not.

Along the same lines: the year in the XML Schema namespace URI is also still fixed with 1999 - is that going to change for the final recommendation? While it is understandable from an implementors point of view that the URN should remain constant over the time of the draft and recommendation creation, it would IMHO be rather confusing for all future schema authors, if the date given here is not identical to the date of the final recommendation.

Actual Resolution

Discussed in call of 2000-07-13.

See issue LC-73 for discussion.

Formal response to commentator.

Duplicate formal response to commentator.

Commentator replies (by private mail) that "Yes, this is very much appreciated and it gives us - as a schema editor developer - the option to detect/support both old (April 7) and new (Sep 22) style schemas and to 'upgrade' them as well."

LC-24. change-log: Improve or drop tabulation of changes in Structures?

Issue Class: C Locus: structures G Cluster: ed-str Status: silent
Assigned to: editor Originator: Alexander Falk

Description

Should the Tabulation of Changes be revised or dropped in future versions of the structures spec?

Interactions and Input

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

G. Tabulation of Changes The comments in this list are not very useful at all. Compared with "H Revisions from previous draft" in Part 2, which is ideal for implementors and saves us the burden of re-reading the entire Specs again and again, the list of changes in Part 1 is too minimal. Comments like "Lots of edits" or "more from Noah" are simply not comprehensible without the background that only insiders of the WG can have. Please provide a more meaningful change history in the future (or none at all).

Actual Resolution

Formal response to commentator.

LC-25. boolean-pattern: Why have pattern facet for Boolean?

Issue Class: C Locus: datatypes 3.2.2.2 Cluster: 01 facets Status: silent
Assigned to: editor Originator: Alexander Falk

Description

Should the pattern facet be dropped from the boolean type?

Interactions and Input

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

Part 2 - Datatypes

3.2.2.2 Constraining facets on boolean datatype Other than specifically restricting the lexical space to either {0,1} or {true, false} for a certain schema, what is the intention of allowing a pattern facet for booleans?

Proposed Resolution

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

You could specify a pattern that only allowed "0", for example.

Actual Resolution

Formal response to commentator.

LC-26. binary-pattern: Drop pattern from binary?

Issue Class: C Locus: datatypes 3.2.8.1 Cluster: binary Status: silent
Assigned to: editor Originator: Alexander Falk

Description

Should the pattern facet be dropped from the binary type?

Interactions and Input

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

3.2.8.1 Constraining facets on binary datatype As binary currently only offers two different encodings that specify the respective lexical spaces, defining a pattern facet on binary doesn't make much sense - other than e.g. restricting the letters a-f to uppercase-only or lower-case only. However, with base64 the alphabet is strictly defined in the RFC. To answer the question contained in the Ed.Note of this chapter, I would, therefore, suggest to omit the pattern facet here from an implementors standpoint, as its benefits are rather limited and the potential confusion would be worse.

Proposed Resolution

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

The utlity of "pattern" is questionable for some datatypes. Thanks for your feedback.

Actual Resolution

Formal response to commentator.

LC-27. decimal-point: Allow multiple lexical spaces for floats?

Issue Class: D Locus: datatypes 3.2.3 - 3.2.5 Cluster: 27 i18n-numeric Status: ok
Assigned to: Sperberg-McQueen Originator: Alexander Falk, Dario De Judicibus

Description

Should the datatypes spec define multiple lexical spaces for floating-point and decimal numbers?

Interactions and Input

Cf. Allow hex notation for integers?

Cf. Integers should not allow non-significant leading or trailing zeroes

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

3.2.3 - 3.2.5 Lexical notation of floating-point numbers While it is very nice from an implementor's standpoint to know that all sorts of float, double, or decimal numbers will only use the period as a decimal separator, I wonder if this is really satisfying for many European and other non-US users. Specifically, when XML is being used to supplant existing systems, it is often necessary to interpret floating-point or decimal number with other decimal separators (most notably ',') and in some cases also including thousands separators (e.g. 4,560,758.99 vs. 4.560.758,99). Why is there no means provided to support these formatting styles in the XML schema draft. Just like the encoding facet for binaries, this "formatting" or "picture" facet (to use an old COBOL-coined term that was also suggested in the DCD submission to the W3C in July 1998) could be used to specify the various aspects of the lexical space of these datatypes. If we were to consider XML schemas for B2B e-Commerce scenarios only, it would be understandable to only allow one format that can be easily processed - but XML schemas should be thought of in much broader terms.

Input from Dario de Judicibus:

"Dario de Judicibus" <ddj@mclink.it> to XML Schema Comments list, Tue, 25 Apr 2000 23:12:02 +0200

Similarly we might define a new facet for decimal, dates, and other locale based data types, to support locale format. For example

<xsd:simpleType 
  name="italianDecimal" base="xsd:decimal" derivedBy="xsd:format">
  <xsd:locale value="IT-it" />
</xsd:simpleType>

The derivation by format means that we do not restrict the scope of type, but we work on the lexical representation.

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Wed, 26 Apr 2000 07:56:59 -0500

Localized numerical representations: The lexical representations were chosen for their unambiguity. For instance, the timeInstant format is an undesirable presentation format in all locales. In general it is assumed that localization of presentation would be done in transformations or applications. Definitely, wanted to avoid the case of not being able to determine (or worse guessing) whether a comma was a digit separator or a decimal point. You could create an italian decimal as a derived class from string, however min/max would be interpreted as string comparisions.

Input from Dario De Judicibus:

dejudicibus@it.ibm.com to XML Schema Comments list, Thu, 27 Apr 2000 12:35:14 +0200

Thank you for your reply, Curt. I still have a doubt about the localization issue, anyway. You said:

"Definitely, wanted to avoid the case of not being able to determine (or worse guessing) whether a comma was a digit separator or a decimal point."

I understand your point. However I am wondering the following. Let us suppose that you defined a language for legal documents which states that numbers are xsd:decimal and dates are in user-defined typical US format (MM/DD/YY). An Italian company publishes in its site a contract for web ordering of products. The contract uses that language and contains a price EUR 8.500 and a date 03/04/01. For that company, the price is eight thousand and five hundreds euros, and the date is April 3rd, 2001, but for an American customer price is eight euros and fifty cents, and date is March 4th, 2001. It would be very useful if the browser would be able to automatically convert those value to the current locale, that is the locale of customer. This is possible anyway, only if the webmaster specified in the document the locale in which those values had been written.

If you fix the format of decimal in XML Schema, you force me to use US-like format in Italian pages, or not use your language at all. That is, instread of

<product partNumber="AS45">
  <description>Ink-jet Printer AS45</description>
  <price currency="EUR">1200.00</price>
</product>

which contains a US-form price, I will have to use

<product partNumber="AS45">
  <description>Ink-jet Printer AS45</description>
  1200,00 EUR
</product>

hoping that product content is defined as mixed. I would prefer

<product partNumber="AS45">
  <description>Ink-jet Printer AS45</description>
  <price currency="EUR" xsi:locale="IT-it">1200,00</price>
</product>

As you can see, there is no need to change the meaning of decimal, but rather adding a new attribute for XML languages, and add in xsd:complexType a new property called xsd:localisable or something like that:

<xsd:element name="price">
  <xsd:complexType base="xsd:decimal" derivedBy="xsd:extension"
localisable="true">
      <xsd:attribute name="currency" type="IsoCurrencyCodes" />
  </xsd:complexType>
</xsd:element>

Proposed Resolution

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

This argument was made by several people but there was a strong sentiment for a single lexical representation.

Actual Resolution

Discussed in call of 2000-07-27.

Discussion made clear that this issue is tied up with both LC-21 and LC-220.

The entire cluster of issues was discussed at face to face meeting, 1 August 2000, and the proposal for abstract types (intended to support the definition of multiple lexical spaces) was discussed again at the face to face meeting of 1 September 2000.

The net result is that there is no provision for multiple distinct lexical spaces for the same value space in XML Schema 1.0. There was some sentiment in the WG in favor of supporting this facility at some point, but the abstract-simple-types proposal which was intended to lay the ground work was judged, in the end, to have too many problems and raise too many difficult design choices to allow it to be included in XML Schema 1.0.

Formal response to commentator. Falk replies (privately) "Overall, I think that the WG resolution is reasonable and acceptable, because it turns out that in the real world, XML instance documents will mostly be generated by software and received by software and as such it is desirable to only have one lexical representation. Furthermore, most human beings will not want to read the XML instance documents in their 'raw' form, but will probably view the output of some XSLT transformation or other processing of the XML data into a presentation form suited for the target audience."

LC-28. petrified-facets: Don't list fixed-value facets?

Issue Class: C Locus: datatypes 3.3 Cluster: 01 facets Status: silent
Assigned to: editor Originator: Alexander Falk

Description

Should the list of constraining facets omit facets which have fixed values for all members of a type? Should facets which have fixed values for all members of a type be signaled in some way? Should such facets appear in the post-schema-validation infoset?

Interactions and Input

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

3.3 A general question concering constraining facets in derived types: Most of the derived datatypes have certain facets that distinguish them from the primitive types. However, each one of the derived types still lists the very facets that were used to generate it from the primitive types in its list of applicable constraining facets. Consider the case of recurringDay, which is derived from recurringDuration by fixing the duration facet with "PT24H" and the period facet with "P1M". This type still lists duration and period as possible constraining facets - yet they are absolutely fixed by the very definition of recurringDay. How should a validating processor treat a new type derived from recurringDay that actually tries to use one of these facets in its definition? I see two possible solutions to this dilemma:

  • a) you integrate some kind of "final" method to fix constraining facets (e.g. the definition of recurringDay would use the period and duration facets with this "final" mechanism to explicitly forbid any further attempts at adding additional constraints through the same facets).
  • b) if this seems to be too complicated, it would also possible to make the above mechanism mandatory for any kind of facet (e.g. once a derived type was generated by using any one facet, that facet cannot be used anymore to further derive from that derived type). This would, perhaps, result in some of the derived built-in types that are currently defined, to be redefined as primitive types, but would resolve all potential ambiguities arising from multiple use of the same facet for any sort of grandchildren-derived type.

Input from Martin Bryan:

"Martin Bryan" <mtbryan@sgml.u-net.com> to XML Schema Comments list, Thu, 13 Apr 2000 12:15:46 +0100

Another, unrelated, problem concerns the your listing of scale as a valid facet for integer based derived datatypes. Under what conditions is it valid to specify a scale property for an integer?

Proposed Resolution

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

The facets that have been given values during the refinement process cannot be changed. They are incuded in the post-validation infoset becase their actual values may be useful in some cases.

Actual Resolution

Formal response to commentator.

LC-29. recurring-day-lexform: Fix lexical form for recurringDay?

Issue Class: C Locus: datatypes Cluster: 04 datetime Status: silent
Assigned to: editor Originator: Alexander Falk

Description

Should the lexical form for recurringDay be changed from ---DD to ----DD?

Interactions and Input

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

3.3.29.1 Lexical representation of recurringDay If this is a left truncated ISO-8601 day, then it should be ----DD, not ---DD.

Proposed Resolution

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

ISO 8601 says that the definition in the document is correct.

Actual Resolution

Formal response to commentator.

LC-30. xml.xsd: Where is xml.xsd?

Issue Class: C Locus: datatypes A Cluster: publication Status: silent
Assigned to: editor Originator: Alexander Falk

Description

Should the file part2.xsd be changed so that it can be fetched and displayed without complaint by common software?

Interactions and Input

Cf. Schema-for-schema files

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

A. Schema for Datatype Definitions The part.xsd schema document includes the namespace " http://www.w3.org/XML/1998/namespace" from a schemaLocation "../structures/xml.xsd" yet I was unable to locate this file on the W3C web-server. Can you please provide a URL that will allow me to access the xml.xsd file?

Input from Curt Arnold:

"Arnold, Curt" <Curt.Arnold@hyprotech.com> to XML Schema Comments list, Wed, 12 Apr 2000 10:32:39 -0600

Microsoft IE5 complains about xmlns:x not being fixed in the following line in Part2.xsd:

<!ATTLIST element xmlns:x CDATA #IMPLIED>
<!-- keep this schema XML1.0 valid --> 

My interpretation is that the parser's behavior is well-intentioned but wrong. However since the line is in the DTD for compatibility to begin with, changing the line to:

<!ATTLIST element xmlns:x CDATA #FIXED
          "http://www.w3.org/XML/1998/namespace">
<!-- keep this schema XML1.0 valid -->

should preserve compatibility with the most ubiquitous XML parser.

Actual Resolution

Formal response to commentator.

LC-31. spec-package: Provide archive of spec, DTDs, stylesheets, and XSDs?

Issue Class: C Locus: both Cluster: publication Status: silent
Assigned to: editor Originator: Alexander Falk

Description

Should single-file archives of the spec, the DTD file(s), the stylesheets, and the XSD files be provided in future published versions of XML Schema?

Interactions and Input

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

Would it be possible for a future draft or the final recommendation to include one downloadable archive file (ZIP, gzip, or any other common formats) that includes all required files in one neat package (i.e. the specs and their respective DTDs and XSL files plus the non-normative Schema DTDs, XSDs, and any other required file).

Actual Resolution

Formal response to commentator.

LC-32. regex-shorthands: Add shorthands to regex syntax?

Issue Class: D Locus: datatypes Cluster: 15 regex Status: ok
Assigned to: Dave Peterson Originator: Alexander Falk

Description

Should {,m} be defined as a shorthand for {0,m} in the syntax of regular expressions?

Interactions and Input

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

E. Regular Expressions For an implementor's position I don't see why defining {,m} as a shorthand form of {0,m} would be a problem. It would seem logical to add this, now that {n,} is allowed. I don't think it is relevant whether or not Perl includes such a quantifier. If it is more consistent and could potentially help schema authors, then it should be added.

Proposed Resolution

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

These are good suggestions. We decided to stick closely to Perl for the sake of consistency.

Actual Resolution

Discussed in call of 2000-06-29.

RESOLVED: to dispose of issue LC-32 by saying no (with rationale as described by Matt Timmermans in his email). Dissenting: Peterson (Rationale: the shorthands should be added)

Formal response to commentator. Commentator replies by private mail that he finds the rationale acceptable.

LC-33. why-00: Why is {0,0} there?

Issue Class: A Locus: datatypes Cluster: regex Status: silent
Assigned to: Matt Timmermans Originator: Alexander Falk

Description

Should {0,0} be removed from the table of regular expression syntax? from the regular expression syntax itself?

Interactions and Input

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

Along these same lines: I doubt that there is any meaningful use for {0,0} apart from effectively "commenting out" the preceding atom. Furthermore, {0,0} could then potentially be written as {,} which is even more confusing. Apart from being a logical consequence of the {n,m} quantifier, what was the reason for adding {0,0} to the table as a separate line?

Proposed Resolution

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

These are good suggestions. We decided to stick closely to Perl for the sake of consistency.

Actual Resolution

Response to commentator.

LC-34. Escape-vertical-bar: Define single-character escape for vertical bar?

Issue Class: C Locus: datatypes Cluster: regex Status: silent
Assigned to: Paul Biron Originator: Alexander Falk

Description

Should a single-character escape for vertical bar (\|) be defined as part of the regular-expression syntax?

Interactions and Input

Input from Alexander Falk:

("Falk, Alexander" <falk@icon.at> to XML Schema Comments list, 10 April 2000)

Another problem: it is currently impossible to define a pattern that uses the vertical bar '|' as a character, because this is defined as a separator between branches, and there is no single character escape defined for \|. The only workaround is to include the vertical bar inside of a positive character group in a character class escape: [|]. Wouldn't it be better (i.e. more consistent) to add \| as a single char escape?

Proposed Resolution

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

These are good suggestions. We decided to stick closely to Perl for the sake of consistency.

Actual Resolution

Formal response.

LC-35. primer-sec5-eg: Typo in example in Primer section 5?

Issue Class: C Locus: primer Cluster: typos Status: silent
Assigned to: editor Originator: David Wang

Description

Is there a typo in section 5 of the Primer?

Interactions and Input

Input from David Wang:

David Wang <dwang@mitre.org> to XML Schema Comments list, Mon, 10 Apr 2000 16:06:09 -0400

I think the example for xmlschema-0/Section 5. Advanced Concepts III: The Quarterly Report has a small typo in either 4Q99.xml or report.xsd because the XML uses

<regions>
  <zip code="95819">
...

while the schema says it should be

<regions>
  <zipcode code="...">
...

I think the schema is the one that has the typo.

Input from Ray Gates:

Ray_Gates@manulife.com to XML Schema Comments list, Tue, 18 Apr 2000 16:17:26 -0400

In section 5 Advanced Concepts III: The Quarterly Report, in the listing of report.xsd:

under

<complexType name="RegionsType">
  <element name="zipcode" ....

If I am reading this correctly, this should be

 <element name="zip" .... 

to be consistent with references to this element.

Actual Resolution

Formal response to commentator.

LC-36. revisit-design: Reconsider project requirements and design?

Issue Class: B Locus: requirements Cluster: process Status: ok
Assigned to: Dave Hollander, Michael Sperberg-McQueen Originator: David RR Webber

Description

XML Schema should be revised to take better account of the needs of eBusiness. The project should be put on hold for three months to enable a review in the context of ebXML technical requirements. It should adopt a three-tier design. It should be subjected to field testing for six months before formal adoption. A test suite should be provided to help ensure consistency across implementations.

Interactions and Input

Input from David RR Webber:

David RR Webber <Gnosis_@compuserve.com> to XML Schema Comments list, Tue, 11 Apr 2000 11:34:51 -0400

... the current W3C Schema work is fundamentally flawed and does not provide a functional system that can support broad eBusiness interchanges in the same way that X12 and EDIFACT have provided for EDI. There are too many omissions, too many shortcomings and not enough regard to basic usability.

... The requirements fail to encompass what is now transpiring with ebXML, eCo and eSpeak to name some. Then a simple review of industry initiatives such as FIXML, wfmXML, RosettaNet, show the need for eBusiness directed mechanisms that are just not being addressed. Again, the requirements for Schema were written nearly two years ago - it's time to address this and revisit the requirements in the context of 2000/2001 and eBusiness needs.

All this is documented at http://www.bizcodes.org/eDTD/xml-eDTDWP.htm.

1) Moratorium of 3 months to allow Schema Specifications to be re-visited, particularly in the context of ebXML technical requirements.

2) 3 Tier syntax strategy to be adopted that allows hierarchy of representational levels -

  • abstract a la RELAX
  • syntax neutral
  • business functional - ebXML

3) Field testing for 6 months prior to formal adoption, with selection of industry groups providing evaluations, not just a set of vendors.

4) Interoperability test-suite development to ensure consistency.

Of course there are issues with this - but nothing that cannot be resolved by setting working parameters and putting together a cross-management group to oversee the technical work. We have plenty of precedence for this with efforts like RosettaNet and the standards groups X12, HL7, EDIFACT, et al. Yes this takes time, but this is one instance when that's exactly the path we should be taking now.

I'd rather have an objective Schema system that has been developed with broad involvement, rather than spending the next several years fixing up an inadequate system.

History teaches us that EDIFACT's semantics are much cleaner than X12's because X12 is a hodgepodge that evolved in an adhoc fashion. Right now we are looking at history repeating itself - and ebXML is our one bright hope to ensure that two years from now we're not looking at a dozen variants of XML/edi - all of which are not interoperable.

Input from Bruce Peat:

("Bruce Peat" <BPeat@eProcessSolutions.com> to XML Schema Comments list, Wed, 12 Apr 2000 16:06:53 -0400)

As to the 'three month timeframe', I think the members of the W3C should decide the schedule. This hierarchy approach should allow the working group to concentrate on what constitutes the 'base', and consider what best makes sense for the other 'representational levels'. As you suggest, this would give us more time to work and prove the extensions before going to recommendation status following a period of time after we can a chance to begin implementation using the base recommendation.

This approach I think would be accepted with open arms in the community. For a recommendation with a larger scope and without proper constraints for exchange would force a subset of the specification to be used in industry and will keep the various non-interoperable implementions on other critical items. IMHO: The W3C decision here could either save or cost industry billions of dollars over the next few years.

Input from David RR Webber:

David RR Webber <Gnosis_@compuserve.com> to XML Schema Comments list, Wed, 12 Apr 2000 16:45:03 -0400

Actual Resolution

The WG believes this is out of scope. Formal response.

Commentator's answer: suggestion has been overtaken by events.

LC-37. multi-field-keys: Multi-field keys?

Issue Class: A Locus: both Cluster: 20 keys Status: ok
Assigned to: Noah Mendelsohn Originator: Ani Pedersen

Description

How does the schema author define a multi-field key?

Interactions and Input

Input from Ani Pedersen:

Ani Pedersen <APeders@plexus.ca> to XML Schema Comments list, Tue, 11 Apr 2000 14:22:40 -0700

I have just started digging into XML and I need some help regarding mutiple field keys.

The new XML schema - Structures does not give any solution in how to implement multiple field keys. The only comment in section 3.10 is a note that mentions that is not supported by xsl:key.

Is there an alternative way of defining multi-field keys? A workaround?

Maybe I am missing something?

This is an extract of what I am working on and I need to define two fields as key values (they have to be together). Unfortunately the structure I came up with allows me to indicate that they both should be present and in that order (with group) and that both are keys. However, here I indicate that they are independent keys and I don't want that. Is there a way of restricting this looseness.

<element name="primaryCustomer" type="PrimaryCustomer" >
   <complexType name="PrimaryCustomer">
      <element ref="accountNumber" minOccurs = "0"/>
      ......

      <group name = "customerKey" >
         <sequence>
            <element ref="customerNumber"/>
            <element ref="customerSuffix"/>
         </sequence>
      </group>
   </complexType>

   <key name = "customerNumber" >
     <selector> customerKey/customerNumber </selector>
     <field> @name </field> 
   </key>

   <key name = "customerSuffix" >
     <selector> customerKey/customerSuffix </selector>
     <field> @name </field> 
   </key>
 </element>

Proposed Resolution

Noah Mendelsohn to XML Schema comments list, 11 April 2000:

<field> can be repeated to create a multi-field key. I think that's what you need, and "it's in there.".

Actual Resolution

Formal response to commentator. Commentator agrees this is OK.

LC-38. maxOccurs-and-minOccurs: Fix defaulting text for maxOccurs?

Issue Class: C Locus: primer Cluster: 13 occurs Status: silent
Assigned to: editor Originator: Nick K. Aghazarian

Description

Should the description of the default value for maxOccurs be changed in the Primer? in the Structures spec?

Interactions and Input

Cf. Clarify minOccur/maxOccur defaulting?

Input from Ace:

Ace <Ace@AceProgrammer.com> to XML Schema Comments list, Tue, 11 Apr 2000 16:42:00 -0700

I noticed that in the examples that are in XML Schema Part 0: Primer, that the comment element is usually defined:

<xsd:element ref="comment" minOccurs="0"/>

The Primer explicitly says this means the element is optional. However, after looking at the spec and the explanation in the Primer, it seems to me that this actually makes the comment prohibited because it falls into the third case below. I hope I am mistaken. I'd rather the above syntax mean that the element is optional.

Input from Dario de Judicibus:

"Dario de Judicibus" <ddj@mclink.it> to XML Schema Comments list, Tue, 25 Apr 2000 23:12:02 +0200

Another problem is related to maxOccurs. It is said to be equal to minOccurs if not provided. But it is clear in specs that

<xsd:element ref="comment" minOccurs="0" />

means

<xsd:element ref="comment" minOccurs="0" maxOccurs="1" />

and not

<xsd:element ref="comment" minOccurs="0" maxOccurs="0" />

Is that a typo? Is intended?

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Wed, 26 Apr 2000 07:56:59 -0500

I believe that the maxOccurs issue was an oversight, has been reported here, and will be corrected.

Proposed Resolution

Henry Thompson to XML Schema comments list:

You're right, it should, and the defaulting text for maxOccurs is buggy. It should read {max occurs}

  1. 1. unbounded, if the maxOccurs [attribute] equals unbounded,
  2. 2. otherwise the number corresponding to the lexical [value] of the maxOccurs [attribute], if present,
  3. 3. otherwise the number corresponding to the lexical [value] of the minOccurs [attribute], if it is present and greater than 1
  4. 4. otherwise 1.

Actual Resolution

Formal response to commentator.

LC-39. blockDefault: Typo: for finalDefault read blockDefault?

Issue Class: C Locus: primer 4.7 Cluster: typos Status: silent
Assigned to: editor Originator: Peter A. Berggren

Description

Is there a typo in the last paragraph of Primer 4.7?

Interactions and Input

Input from Peter A. Berggren:

berggren@lr.net (Peter A. Berggren) to XML Schema Comments list, Wed, 12 Apr 2000 10:54:16 -0400

Regarding the following extract from the last paragraph of Section 4.7 in XML Schema Part 0 : Primer...

"...As with final, there exists also an optional finalDefault attribute on the schema element whose value can be one of the values allowed for the final attribute. The effect of specifying the finalDefault attribute is equivalent to specifying a final attribute on every type definition and element declaration in the schema. ..."

This was apparently copied from a preceding, similar paragraph regarding finalDefault, without changing the word "final" to "block". I believe the text should read:

"...As with final, there exists also an optional blockDefault attribute on the schema element whose value can be one of the values allowed for the block attribute. The effect of specifying the blockDefault attribute is equivalent to specifying a block attribute on every type definition and element declaration in the schema. ..."

Actual Resolution

Formal response to commentator.

LC-40. null-and-keyref: xsi:null and keyref

Issue Class: C Locus: both Cluster: 20 keys Status: silent
Assigned to: editor Originator: Henry Thompson

Description

Should key references with fields whose elements are xsi:null='true' be treated as if the node were not found? (Or, alternatively, as if it contained an empty string?)

Interactions and Input

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 12 Apr 2000 15:56:40 +0100

Not key, but keyref, for a change.

Seems to me we missed a case: if the node picked out by a keyref's field is xsi:null='true', then this should be treated as if the node had not been found. As the PWD reads, it will just use an empty string as that field's contribution to the key sequence to be looked up.

Ditto for unique fields.

Input from Ashok Malhotra:

Your note of 4/12 confuses me. keyref fields can only refer to key fields and these are, by definition, non-nullable.

Actual Resolution

Formal response to commentator.

LC-41. typos: Typos in datatypes?

Issue Class: C Locus: datatypes 3.3.22 Cluster: typos Status: silent
Assigned to: editor Originator: Curt Arnold

Description

Are there typos in the schema-pointer and the description of time in the datatypes spec?

Interactions and Input

Input from Curt Arnold:

"Arnold, Curt" <Curt.Arnold@hyprotech.com> to XML Schema Comments list, Wed, 12 Apr 2000 10:05:26 -0600

Schema and DTD links in "This Version" header point to the Part 1 schema and DTD, not a text version of the schema or DTD for datatypes that I expected.

Section 3.3.22 time "date is generated from recurringDuration by setting the value of the duration facet equal to P0Y and the value of the period facet equal to PY24H (24 hours)."

I believe "date" should be "time".

Cf. Date and time period

Proposed Resolution

Henry Thompson to XML Schema comments list, 12 April 2000:

Those now are the schema and DTD for datatypes -- if you want the datatypes all by themselves, in another namespace, with no schema apparatus, use the pointer specifically for that, i.e. http://www.w3.org/1999/XMLSchema-datatypes.xsd

Actual Resolution

Formal response to commentator.

LC-42. typo-primer-3.1: Typos in Primer Section 3.1?

Issue Class: C Locus: primer 3.1 Cluster: typos Status: silent
Assigned to: editor Originator: Adrian Robert

Description

Should Primer 3.1 paragraph 3 read "unqualified" instead of "qualified"?

Interactions and Input

Input from Adrian Robert:

Adrian Robert <arobert@dtai.com> to XML Schema Comments list, Wed, 12 Apr 2000 11:55:11 -0700

In the third paragraph in Section 3.1 (below), it appears that "qualified" should be changed to "unqualified". (Also, note there is a small agreement-related ungrammaticality in the 2nd sentence.)

"In po1.xsd we globally specify the qualification of elements and attributes by setting the values of both elementFormDefault and attributeFormDefault to qualified. Strictly speaking, this is unnecessary because these are the default values of the two attributes, but we do so to highlight the contrast between this case and others we describe in subsequent sections."

Actual Resolution

Formal response to commentator.

LC-43. derivedBy: Defining lists of permitted attribute values

Issue Class: A Locus: both Cluster: 02 enums Status: ok
Assigned to: Martin Gudgin Originator: Martin Bryan

Description

[It is not clear which of the following questions is being raised by the commentator. -MSM] Is there any method, other than by enumerations, of defining lists of permitted attribute values? Is there a convenient way of importing lists of allowed values from outside the schema document? Is there a convenient way to specify that an attribute must have as its value one of an enumerated set of legal values? Is there a convenient way to specify that an attribute must have as its value a list or sequence of tokens, each of them from an enumerated set of legal tokens?

Interactions and Input

Input from Martin Bryan:

"Martin Bryan" <mtbryan@sgml.u-net.com> to XML Schema Comments list, Thu, 13 Apr 2000 12:15:46 +0100

I am trying to work out whether or not the derivedBy facet can be used to identify an element that contains a list of permitted values for an attribute. It seems to me to be a useful feature but I cannot see how it would work as the element referenced by derivedBy has, according to the Primer at least, and by implication from Part 2, to be in the instance and not in the schema. I was thinking about something along the following lines:

<xsd:attribute name="Code" base="xsd:string">
 <xsd:simpleType name="CodeList" 
                 base="xsd:string" 
                 derivedBy="xsd:list"/>
</xsd:attribute>
<MyCodeList xsi:type="CodeList">AB1 CD2 EF3</MyCodeList> 

Is this valid? Where would MyCodeList need to be defined? (Is it permitted as part of the Schema?)

Incidentally the examples shown in Part 2 and the Primer conflict. Part 2 shows the use of the xsi:type attribute to link the instance to the derived type. The example in the primer does not include this attribute. Some clearer explanation of the role of this attribute and the position of the element containing the list of permitted values, might help to clarify this point.

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 13 Apr 2000 14:24:46 +0100

Confusion of levels/locations/facilities, I guess.

If you want to constrain element content, use an element declaration:

<xs:schema xmlns='[URI:martinbryan]' targetNamespace='[URI:martinbryan]'
           xmlns:xs='http://www.w3.org/1999/XMLSchema'>
 <xs:simpleType name='CodeList' base='xs:string' derivedBy='list'/>

 <xs:element name='MyCodeList' type='CodeList'/>
</xs:schema>

<docroot xmlns='[URI:martinbryan]'>
 ...
 <MyCodeList>AB1 CD2 EF3</MyCodeList>
</docroot>

The <docroot> instance above is, as far as we can tell from the fragments given, schema-valid per the schema corresponding to the schema document above it.

If you want to constrain an element beyond its schema declaration in an instance, use xsi:type:

<xs:schema xmlns='[URI:martinbryan]' 
           targetNamespace='[URI:martinbryan]'
           xmlns:xs='http://www.w3.org/1999/XMLSchema'>
 <xs:simpleType name='CodeList' 
                base='xs:string' 
                derivedBy='list'/>
 <xs:element name='MyContainer' content='textOnly'/>
</xs:schema>

<docroot xmlns='[URI:martinbryan]'
         xmlns:xsi='http://www.w3.org/1999/XMLSchema-instance'>
 ...
 <MyContainer xsi:type='CodeList'>AB1 CD2 EF3</MyCodeList>
</docroot>

Again, the <docroot> instance above is, as far as we can tell from the fragments given, schema-valid per the schema corresponding to the schema document above it.

Neither of these examples define the restricted element type in the instance. To do that you have to play games with what amounts to an internal subset:

schema3.xsd:

<xs:schema xmlns='[URI:martinbryan]' targetNamespace='[URI:martinbryan]'
           xmlns:xs='http://www.w3.org/1999/XMLSchema'>

 <xs:element name='MyContainer' content='textOnly'/>
</xs:schema>

<container xmlns='[URI:martinbryan]'
         xmlns:xsi='http://www.w3.org/1999/XMLSchema-instance'
         xmlns:xs='http://www.w3.org/1999/XMLSchema'
         xsi:schemaLocation='[URI:martinbryan] #xpointer(*/xs:schema)'>
 <xs:schema  targetNamespace='[URI:martinbryan]'>
  <include 'schema3.xsd'/>
  <xs:simpleType name='CodeList' base='xs:string' derivedBy='list'/>
 </xs:schema>
 <docroot>
   ...
   <MyContainer xsi:type='CodeList'>AB1 CD2 EF3</MyCodeList>
 </docroot>
</container>

Input from Martin Bryan:

"Martin Bryan" <mtbryan@sgml.u-net.com> to XML Schema Comments list, Thu, 13 Apr 2000 15:43:56 +0100

Thanks for the response, but you are on the wrong track. I see how constraining element content works quite nicely. The problem was that I specifically want to apply the same technique to an enumerated list of attribute values, hence my question:

I am trying to work out whether or not the derivedBy facet can be used to identify an element that contains a list of permitted values for an attribute.

The area I am trying to get working is the ebXML electronic business area. We have a lot of elements which have "qualifier" attributes whose values are taken from code lists. Ideally I would like to be able to "import" up-to-date codelists as part of the schema so that maintenance of the code list can be made independent of maintenance of the schema. Having to define such lists as enumeration lists is very long winded, so I would like to use the derived by method, but I don't see how it applies to attributes, hence my attempted example:

 <xsd:attribute name="Code" base="xsd:string">
  <xsd:simpleType name="CodeList" base="xsd:string" derivedBy="xsd:list"/>
 </xsd:attribute>
 <MyCodeList xsi:type="CodeList">AB1 CD2 EF3</MyCodeList> 

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 13 Apr 2000 18:03:06 +0100

What confuses me about your example is that you don't show an attribute in the instance, but rather an element. Your schema fragment, if it appeared within the type definition for the <banana> element, would schema-validate the following instance just fine:

<banana Code='AB1 CD2 EF3'>...</banana>

Is what you want to be able to do is restrict the list elements to some enumerated list defined elsewhere?

Input from Martin Bryan:

"Martin Bryan" <mtbryan@sgml.u-net.com> to XML Schema Comments list, Fri, 14 Apr 2000 07:43:18 +0100

Yes, with a single value for the attribute taken from that list.

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 14 Apr 2000 11:27:45 +0100

Right, sorry not to have understood sooner. This is a request we've had before, and will certainly consider carefully.

Actual Resolution

Formal response to commentator. Commentator replies that with some reservations he is "happy that we have a workable solution to the separation of the management of enumeration list values from the use of these values in specific applications".

LC-44. bryan-on-dt: Questions relating to data types

Issue Class: A Locus: datatypes Cluster: dt-queries Status: ok
Assigned to: Ashok Malhotra Originator: Martin Bryan

Description

Various points in need of clarification.

Interactions and Input

Input from Martin Bryan:

"Martin Bryan" <mtbryan@sgml.u-net.com> to XML Schema Comments list, Thu, 13 Apr 2000 15:27:21 +0100

What does it mean to apply a pattern to a timeDuration?

Why does the example given of a timeInstance not have a Z before the last hyphen?

Why is the period facet of time shown as PY24H rather than PT24H? (Again there is no Z preceding the timezone details in the example.)

If you define a minInclusive or minExclusive date for a recurring duration whose period is 7 days will the days always fall on the same day of the week as the first date within the period (i.e. the minInclusive date)?

How can enumeration be applied to the binary datatype?

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

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. I would have loved to be able to deal with non-Gregorian calendars (e.g. Jewish, Arabic, Chinese, Japanese, Julian, ....) but don't expect everything to be in place at this stage.

The one area I still expect we are going to have problems in using datatype for electronic commerce is measurements. For example, how can I check that 100cm and 1m are exactly equivalent, but 1yd is not. But again I do not expect you to have addressed these problems at this state. (Schema2 will be along within a few years!)

Nevertheless you have done an impressive job and are to be highly commended.

Proposed Resolution

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

What does it mean to apply a pattern to a timeDuration?

The pattern facet allows you to constrain the lexical representation of the datatype. For time duration you could, for example, write a pattern that starts with P100Y. This would mean that the the duration must be greater than 100 years.

Why does the example given of a timeInstance not have a Z before the last hyphen?

The example is correct. A "Z" is not required and would be an error.

Why is the period facet of time shown as PY24H rather than PT24H? (Again there is no Z preceding the timezone details in the example.)

It should be PT24H. Thanks. A "Z" is not required.

If you define a minInclusive or minExclusive date for a recurring duration whose period is 7 days will the days always fall on the same day of the week as the first date within the period (i.e. the minInclusive date)?

Yes, it would.

How can enumeration be applied to the binary datatype?

In theory you could define an enumeration by quoting hunks of, say, base64 encoded binary data.

Actual Resolution

Informal response to commentator. Commentator confirms he is satisfied.

LC-45. gmacri-misc: Questions

Issue Class: A Locus: structures Cluster: 21 ns Status: silent
Assigned to: Henry Thompson Originator: gmacri@libero.it

Description

Some requests for clarification.

Interactions and Input

Input from gmacri@libero.it:

"gmacri@libero.it"<gmacri@libero.it> to XML Schema Comments list, Fri, 14 Apr 2000 15:25:15 +0200

I'm a student of Politecnico in Turin. I have written you to ask some information:

  • When I write an XML document, the URI used in the declaration of a namespace, for example xmlns:book="http://www.somewhere.org/Book, must have some relation with some component defined in the related schemas?
  • The attribute "BLOCK" used in the definition of some schema's component is equivalent to old attribute "EXACT" ?

[Note re-sent 1 May 2000.]

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 01 May 2000 18:43:26 +0100

When I write an XML document, the URI used in the declaration of a namespace, for example xmlns:book="http://www.somewhere.org/Book, must have some relation with some component defined in the > related schemas?

There doesn't need to be anything at that URI. But if you want to schema-validate elements/attributes from that namespace, you may want one there, or you'll need to define components for those elements in some schema document for that namespace.

The attribute "BLOCK" used in the definition of some schema's component is equivalent to old attribute "EXACT"?

Yes.

LC-46. defaults-vs-validation: Remove default values?

Issue Class: B Locus: structures Cluster: 11 infoset Status: ok
Assigned to: chairs Originator: Mikael Ståldal

Description

Should default values and other similar contributions to the standard info-set be removed from XML Schema?

Interactions and Input

Input from Mikael Ståldal:

Mikael Ståldal <d96-mst@d.kth.se> to XML Schema Comments list, Mon, 17 Apr 2000 12:13:24 +0200 (MET DST)

Section 1.1 in the XML Schema Structures WD says:

The purpose of an XML Schema: Structures schema is to define and describe a class of XML documents by using schema components to constrain and document the meaning, usage and relationships of their constituent parts: datatypes, elements and their content and attributes and their values.

Schemas may also provide for the specification of additional document information, such as default values for attributes and elements. -----

I consider this as two different purposes, and I don't think it's a good idea to mix them together as the schema WD does (DTDs has the same problem). The inclusion of default values in the schema lead to that the output of parsing the same XML document with and without the schema can be different, and I don't like that. I think that validation and supplying default values should be clearly separated processing steps. Likewise, I think that the schema for validation and the defintion for default values should be clearly separated data entites. It should be possible to apply default values without validation, and omitting the validation step should not affect the result for valid input.

My suggestion is to remove default values, and everything else that may cause the output from validating and non-validating parsing to be different, from the XML Schema spec and leave that for some other mechanism (perhaps internal DTD subset for attribute value defaults).

Actual Resolution

Formal response.

Commentator responds 21 September "I am satisfied with the decision."

LC-47. typos-str: Typo in example?

Issue Class: C Locus: structures Cluster: typos Status: silent
Assigned to: editor Originator: Gregor Meyer

Description

Is there a typo in an example in xmlschema-1?

Interactions and Input

Input from Gregor Meyer:

GRMEYER@de.ibm.com to XML Schema Comments list, Mon, 17 Apr 2000 22:55:58 +0200

there are two minor typos in an example in xmlschema-1.html

<xs:complexType name="length1" 
                base="dt:non-negative-integer"
                derivedBy="extension"/>
... 
...
<xs:element name="size" type="dt:non-positive-integer"/>

The base type names should probably be written without '-'

Actual Resolution

Formal response to commentator.

LC-48. simpletype-element: Fix declaration of simpleType element?

Issue Class: C Locus: structures Cluster: sfs Status: silent
Assigned to: editor Originator: Curt Arnold

Description

Should the declaration for the simpleType element type have an explicit reference to the complex type simpleType?

Interactions and Input

Input from Curt Arnold:

"Curt Arnold" <carnold@houston.rr.com> to XML Schema Comments list, Mon, 17 Apr 2000 23:54:08 -0500

The definition for the simpleType element does not have an explicit reference to the simpleType complexType. I assume this is an error in the schema for schemas and not an indication that their is an implicit typing to an identically named type. However, if I'm wrong, could you point out where this behavior is described.

Actual Resolution

Formal response to commentator.

LC-49. restriction-awkward: Streamline restriction of content models?

Issue Class: D Locus: structures Cluster: 12 content-models Status: nok
Assigned to: MSM, Matt Fuchs Originator: Curt Arnold

Description

Should the mechanism for restricting complex types be revised to make it less verbose and awkward?

Interactions and Input

Cf. Simultaneous restriction and extension?

Input from Curt Arnold:

"Curt Arnold" <carnold@houston.rr.com> to XML Schema Comments list, Mon, 17 Apr 2000 23:54:08 -0500

Restrictions of element content in complex types still looks extremely awkward and under documented. If I've overlooked an concise description of how it should work, please point out the appropriate section. Mimicing the expanded content model up to the point of restriction would be extremely verbose when you are tweaking something fairly deep in a content model.

Input from Jane Hunter:

5. Derivation Issues

5.1 Simplified Derivation By Restriction

The current XML Schema WD requires a complex type derived by restriction to repeat all the declarations it inherited from its base. This becomes tedious and hard to manage as the inheritance hierarchy grows deeper. It would be preferable if only the declarations that are further constrained in the derived type needed to be specified. Its possible that in a deeply nested structure, such repetition might be the only practical way to specify restrictions to the structure without causing ambiguity.

Actual Resolution

Discussed in call of 2000-06-16.

Gudgin agreed with the commentator that when writing content models by hand our current rules might indeed be tedious, but observed that for schemas generated by machine (which he expected to be a more common case) the problem was not important. MSM observed that we had spent considerable time exploring alternatives in this area, and that in fact all of the alternatives proposed are not less tedious that the current rule, only tedious in different ways. Anyone writing a schema by hand can be assumed to have access to an editor with cut and paste facilities; David Beech observed that using cut and paste and the current rule is actually somewhat simpler than any of the alternatives, and is much less tedious than constructing the necessary Xpaths, or counting out the necessary sic elements.

RESOLVED without dissent to stand by the current design.

Formal response to commentators.

Commentator not satisfied (n.b. has typo in issue number): 20 July 2000.

LC-50. attribute-elemdecl: Suppress multiple local declarations of attribute element?

Issue Class: C Locus: structures Cluster: sfs Status: silent
Assigned to: editor Originator: Curt Arnold

Description

Should the schema for schemas be revised to use a global declaration for the attribute element type, rather than multiple local declarations?

Interactions and Input

Input from Curt Arnold:

"Curt Arnold" <carnold@houston.rr.com> to XML Schema Comments list, Mon, 17 Apr 2000 23:54:08 -0500

Multiple context-specific defininitions of the attribute element are declared, however they are all identical. It would be confusing to someone looking at a help system when they are presented with the attributeGroup form of the attribute element, the complexType definition of element and don't see any obvious difference.

Actual Resolution

Formal response to commentator.

LC-51. schema-for-xslt: Can XML Schema define XSLT?

Issue Class: D Locus: structures Cluster: 12 content-models Status: silent
Assigned to: Don Box, Dan Connolly Originator: Curt Arnold

Description

Can XML Schema be used to define the XSLT language?

Should the syntax for declaring complex types be revamped? In particular, should the content attribute be dropped?

Interactions and Input

Cf. Content model of <complexType>

Input from Don Box:

I just spent the afternoon massaging my schema for XSLT. If you want to check it out, it is at:

http://www.develop.com/dbox/xml/xslt.xsd

I'd love to get feedback, especially from those who have April 7-compliant schema parsers/validators. I still need to go through and tighten up the references to simple types, add xsd:unique, and catch any bugs I am too tired to see today.

Input from Curt Arnold:

"Arnold, Curt" <Curt.Arnold@hyprotech.com> to XML Schema Comments list, Tue, 18 Apr 2000 15:00:55 -0600

... Schema doesn't seem to have the ability to adequately represent the content model of <xsl:template> or <xsl:for-each>. <xsl:template> content should be zero or more <xsl:param> elements followed by template content. <xsl:for-each> content should be zero or more <xsl:sort> elements followed by template content.

Your schema represented these as:

    <complexType name='template' content='mixed'>
        <element ref='xsl:instruction' />
        <any namespace='##other' />
    </complexType>

    <complexType name='named-template' base='xsl:template-with-space' derivedBy='extension' >
        <element name='param' type='xsl:variable-definition'/>  <!--  should have a minOccurs/maxOccurs here -->
        <attribute name='match' type='xsl:pattern' />
        <attribute name='name' type='QName' />
        <attribute name='priority' type='xsl:XPathNumber' />
        <attribute name='mode' type='QName' />
    </complexType>

    <complexType name='template-with-space' base='xsl:template' derivedBy='extension' >
        <attribute ref='xml:space' />
    </complexType>

    <complexType name='for-each' base='xsl:template-with-space' derivedBy='extension' >
        <element name='sort' type='xsl:sort' minOccurs='0' maxOccurs='unbounded' />
        <attribute name='select' type='xsl:expr' use='required' />
    </complexType>

My interpretation of derivedBy='extension' is that any content defined in the derived type appears after the content in the base type. (I looked but couldn't see any definition of special behavior if the base complexType was mixed) So that your definitions would allow template content then <xsl:sort> or <xsl:param> elements. However, since the only mechanism to get mixed content is through a content='mixed' attribute on a <complexType> element and that the only mechanism to build a content model off of a complexType is restriction or extension, there does not seem to be a mechanism for doing what you would really want.

The best approximation you could do with the working draft is to not use derivation and create a mixed model that allows <xsl:sort> or <xsl:param> to appear anywhere in the mixed content.

If you however, had a <mixed> grouping element then you could adequately the content model like:

<complexType name="for-each">
	 <element name="sort" 
           type="xsl:sort" 
           minOccurs='0' 
           maxOccurs='unbounded'/>
	 <mixed>
   	<element ref='xsl:instruction' />
   	<any namespace='##other' />
	</mixed>
</complexType>

That led me to look at the content attribute of complexType which appears to only provide information in a very few places and has substantial potential to be inconsistent with other parts of the type declaration. Elimination of the content attribute would seem to eliminate some complexity.

The content attribute can have values of elementOnly, textOnly, mixed and empty.

textOnly can usually be implied by the type attribute referencing a simple type or a <simpleType> child element. The equivalent of content='textOnly' would be nothing more would be type='string'. There doesn't seem to be a case where content='textOnly' adds value.

elementOnly can be implied by a type attribute referencing a complexType or a <complexType> child element.

If we had the <mixed> group tag, then mixed content is just a particular flavor of complex type.

That leaves empty. Either an <empty/> element like in previous drafts or better yet defining an "empty" complex type in the schema for schema that is the default base type if no type is defined and would be the default base type for complexType elements.

<!--  these would all be equivalent (unless someone 
     defined a locally name empty complex type)  -->
<element name="apply-imports" type="empty"/>
<element xmlns:xsd="http://www.w3.org/1999/XMLSchema" name="apply-imports" type="xsd:empty"/>
<element name="apply-imports"/>

I've posted an HTMLHelp file (http://home.houston.rr.com/curta/xslt.chm) based on a simplified version of Don's schema for XSLT (http://home.houston.rr.com/curta/xslt.xsd) on my home page.

Input from Don Box:

"Box, Don" <dbox@develop.com> to XML Schema Comments list, Tue, 18 Apr 2000 15:21:10 -0700

Second, Schema doesn't seem to have the ability to adequately represent the content model of <xsl:template> or <xsl:for-each>. <xsl:template> content should be zero or more <xsl:param> elements followed by template content.

Yeah, I thought about alternative ways to model that. One way would have been to use a named model group (that was my first pass btw). The problem is that for mixed content, you can't use sequence constraints. This is a problem with older technologies as well.

<xsl:for-each> content should be zero or more <xsl:sort> elements followed by template content.

Same problem.

[snip]

I don't know that anyone has the will to add more complexity to the schema language to handle mixed content.

Input from Curt Arnold:

"Arnold, Curt" <Curt.Arnold@hyprotech.com> to XML Schema Comments list, Tue, 18 Apr 2000 16:56:40 -0600

Actually, I thought my suggestions allowed you to appropriately constrain the content plus simplified things by eliminating the content attribute.

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 20 Apr 2000 17:18:32 +0100

Curt Arnold <Curt.Arnold@hyprotech.com> writes:

My interpretation of derivedBy='extension' is that any content defined in the derived type appears after the content in the base type. (I looked but couldn't see any definition of special behavior if the base complexType was mixed) So that your definitions would allow template content then <xsl:sort> or <xsl:param> elements.

Correct.

However, since the only mechanism to get mixed content is through a content='mixed' attribute on a <complexType> element and that the only mechanism to build a content model off of a complexType is restriction or extension, there does not seem to be a mechanism for doing what you would really want.

I'd do it by defining template with a disjunction, and then restricting one or the other branch of the disjunction out of existence for the derived types.

That led me to look at the content attribute of complexType which appears to only provide information in a very few places and has substantial potential to be inconsistent with other parts of the type declaration. Elimination of the content attribute would seem to eliminate some complexity.

The content attribute can have values of elementOnly, textOnly, mixed and empty.

Your discussion below seems to assume that 'content' is an attribute on <element>, when in fact it belongs on <attribute>.

textOnly can usually be implied by the type attribute referencing a simple type or a <simpleType> child element. The equivalent of content='textOnly' would be nothing more would be type='string'. There doesn't seem to be a case where content='textOnly' adds value.

There's one corner case:

<xs:element name='foo'>
  <xs:complexType content='textOnly'/>
</xs:element> 

is weaker than base='string' (or type='string' on the xs:element), in that it can be restricted by a complex type with any simple type as its base

elementOnly can be implied by a type attribute referencing a complexType or a <complexType> child element.

How can we distinguish mixed from element only in that case?

If we had the <mixed> group tag, then mixed content is just a particular flavor of complex type.

If we had such a group tag, it would re-introduce the pernicious mixed content bug from SGML.

That leaves empty. Either an <empty/> element like in previous drafts or better yet defining an "empty" complex type in the schema for schema that is the default base type if no type is defined and would be the default base type for complexType elements.

I think we're open to re-designs in this area, but this one isn't quite there yet.

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 20 Apr 2000 17:25:06 +0100

Don Box <dbox@develop.com> writes:

Yeah, I thought about alternative ways to model that. One way would have been to use a named model group (that was my first pass btw). The problem is that for mixed content, you can't use sequence constraints. This is a problem with older technologies as well.

Yes you can -- the whole point of making 'mixed' orthogonal to the content model is that e.g.

  <xs:complexType name='haystack' content='mixed'>
   <xs:sequence>
     <xs:element name='thread'/>
     <xs:element name='needle'/>
   </xs:sequence>
  </xs:complexType>

schema-validates only <haystack> elements with exactly one <thread> and one <needle> daughters, in that order.

Yet another reason to think again about the default <choice> wrapper when you simply say

  <xs:complexType content='mixed'>
   <xs:element .../>
   . . .
  </xs:complexType>

Actual Resolution

Discussed in call of 2000-06-22.

Email discussion had showed that many of the problems associated in SGML with 'pernicious mixed content' could probably be solved in XML, because XML does not require (or allow) the processor to suppress white space, even in cases where the white space is 'insignificant'.

Some WG members argued, however, that the current design has virtues other than simply avoiding pernicious mixed content: the function of a content model in XML Schema is to show where subelement can occur, how often, and in what sequence. There is, separately, a flag to indicate whether character data, or only white space, can occur between them. The simplicity of this design is a virtue in itself; it covers many more cases than XML 1.0 DTDs, and it covers virtually all realistic content models: the cases not covered are not useful or realistic enough to merit the change. As a case not covered, Matt Timmermans offered the example of a paragraph title: one would like to be able to write the equivalent of

<!ELEMENT p (head, (#PCDATA | %phrase;)*)>

This was accepted as (a) not covered, (b) desirable, and (c) a good illustration of the relatively good coverage of the current design: if inability to handle paragraph headings is the worst that happens, ...

The simple fact that in some places within the element, character data is allowed, and in other cases it is forbidden, suggested that there is some semantic difference between those two regions. But it is an inherently questionable design (if not necessarily always a wrong design) to identify an important semantic unit and then to define no element type in the markup language corresponding to that semantic unit. It need not be the business of XML Schema to make questionable design decisions (among which we number, however reluctantly, the design of the XSL 'template' element's content model) easy to implement

RESOLVED: to dispose of issue LC-51 by explaining our rationale and declining to make the suggested change. Dissenting: Connolly; Abstaining: Timmermans.

Formal response to commentator.

LC-52. minoccur-maxoccur: Clarify minOccur/maxOccur defaulting?

Issue Class: D Locus: structures 4.3.3 Cluster: 13 occurs Status: silent
Assigned to: Don Box Originator: Curt Arnold

Description

There is some uncertainty about the default values of the minOccurs and maxOccurs attributes in various situations. Should the defaulting rules be changed?

Interactions and Input

Cf. Re-align occurrence indications for elements and attributes?

Input from Curt Arnold:

"Arnold, Curt" <Curt.Arnold@hyprotech.com> to XML Schema Comments list, Tue, 18 Apr 2000 15:00:55 -0600

The param element reference in the named-template type definition should have a minOccur="0" and a maxOccur="unbounded". As written, a template has to have one and only one param.

Input from Don Box:

"Box, Don" <dbox@develop.com> to XML Schema Comments list, Tue, 18 Apr 2000 15:21:10 -0700

My reading of rule 4.3 under the {content type} definition (found under section 4.3.3) implies that there is an implicit <choice minOccurs='0' maxOccurs='unbounded' > particle over the particle children of a content=mixed complex type. I'll defer to Henry on this.

Input from Curt Arnold:

"Arnold, Curt" <Curt.Arnold@hyprotech.com> to XML Schema Comments list, Tue, 18 Apr 2000 16:56:40 -0600

I guess it depends on what the interpretation of "extending" a complex type that ultimately derived from a complex type that has a content of mixed. If extending means that param is magically added into the mixed content of its base type, then the multiplicity would be implied. If extension in this context means appears that content declared in the derived type appears after the base complexType's content has been satisifed then param is in the wrong place with the wrong multiplicity. Possibly the behavior is already explicit in the schema docs. But for me to get my mind around the schema doc, I have to work out from the schemas to schema to the prose and not the other way around.

Input from Noah Mendelsohn:

Noah_Mendelsohn@lotus.com to XML Schema Comments list, Thu, 20 Apr 2000 01:11:45 -0400

Schemas treats mixed differently than DTD's. In schemas, both element-only and mixed take a full content model. The only difference with mixed is that the instance can have character information item children before after and in between the elements validated by the model. So, you have the full power of content models with mixed. Also, mixed does not imply any defaults for min/maxOccurs. This is NOT the DTD model, but it can express every constraint allowed by DTD mixed (and more).

Input from Don Box:

Don Box <dbox@develop.com> to XML Schema Comments list, Wed, 19 Apr 2000 23:23:19 -0700

This is actually a bit confusing, but I think I finally have my head around it (I certainly didn't two days ago).

If one looks at Section 4.3.3 of Part 1, the description of the {content type} deserialization rules discusses the EXPLICIT PARTICLE that is introduced as a parent of most complex type content models. To paraphrase, unless the complexType's content model is a lone all, group, sequence, or choice, the model is interpreted as if a compositor has been introduced. In the case of content='mixed', it is a choice compositor marked minOccurs='0'/maxOccurs='unbounded'.

That stated, I believe (but may be wrong) that the following:

<complexType name='bob' content='mixed' >
	<element name='a'/>
	<element name='b'/>
	<element name='c'/>
</complexType>

is equivalent to:

<complexType name='bob' content='mixed' >
 <choice minOccurs='0' maxOccurs='unbounded' >
	<element name='a'/>
	<element name='b'/>
	<element name='c'/>
 </choice>
</complexType>

This is pretty much the DTD story. If one really wants the "revolutionary structured mixed content model" that acts like elementOnly but allows non-whitespace character data, one would have needed to write this:

<complexType name='bob' content='mixed' >
 <sequence minOccurs='m' maxOccurs='n' >
	<element name='a'/>
	<element name='b'/>
	<element name='c'/>
 </sequence>
</complexType>

where m and n are the values that match your expectations ;-)

Taking this into account, I believe my original schema for XSLT was using content='mixed' correctly, although I now see at least one opportunity to tighten up some constraints.

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 20 Apr 2000 17:29:37 +0100

Curt Arnold <Curt.Arnold@hyprotech.com> writes:

The param element reference in the named-template type definition should have a minOccur="0" and a maxOccur="unbounded". As written, a template has to have one and only one param.\

Don wrote:

My reading of rule 4.3 under the {content type} definition (found under section 4.3.3) implies that there is an implicit <choice minOccurs='0' maxOccurs='unbounded' > particle over the particle children of a content=mixed complex type. I'll defer to Henry on this.

Don is right, but as I've said I think this is sowing enough confusion that the expected benefit is being overwhelmed.

Curt reply:

I guess it depends on what the interpretation of "extending" a complex type that ultimately derived from a complex type that has a content of mixed. If extending means that param is magically added into the mixed content of its base type, then the multiplicity would be implied. If extension in this context means appears that content declared in the derived type appears after the base complexType's content has been satisifed then param is in the wrong place with the wrong multiplicity. Possibly the behavior is already explicit in the schema docs. But for me to get my mind around the schema doc, I have to work out from the schemas to schema to the prose and not the other way around.

I suspect there's some unclarity in this case -- I'll get back to you.

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 20 Apr 2000 17:32:08 +0100

Don Box <dbox@develop.com> writes:

This is actually a bit confusing, but I think I finally have my head around it (I certainly didn't two days ago).

If one looks at Section 4.3.3 of Part 1, the description of the {content type} deserialization rules discusses the EXPLICIT PARTICLE that is introduced as a parent of most complex type content models. To paraphrase, unless the complexType's content model is a lone all, group, sequence, or choice, the model is interpreted as if a compositor has been introduced. In the case of content='mixed', it is a choice compositor marked minOccurs='0'/maxOccurs='unbounded'.

...

The above analysis is entirely correct, as far as I can tell.

Input from Murray Altheim:

Murray Altheim, Review of XML Schema Specification, 11 May 2000

Primer

§2.2 Complex Type Definitions, Element & Attribute Declarations

The third paragraph prior to Table 1 (beginning "The comment element...") describes default values for minOccurs and maxOccurs. This seems counterintuitive. If I leave off maxOccurs it seems that a maximum has not been set, so I'd expect it to be unbounded. The default is however either equal to minOccurs or 1, if minOccurs is absent.

Actual Resolution

Discussed in call of 2000-06-23.

The WG first noted that the discussion of this issue eventually shifted from a proposal to change the defaulting rules for min- and maxOccurs to a proposal to change the defaulting rules for the top-level grouping element, the latter had been dealt with as issue LC-126. The former had not yet been dealt with, so we focused on that. The WG identified four possible ways of dealing with the defaults for min- and maxOccurs (for elements -- attributes are, it will be recalled, now handled differently):

  • the last-call draft of 7 April specifies that the maxOccurs property is (a) the literal value of the maxOccurs attribute, if any, else (b) the literal value of the minOccurs attribute, if any, else (c) 1. This has led to various confusions in the examples in the primer (LC-38).
  • the correction proposed by Henry Thompson (and originally intended by at least some WG members): the maximum-occurrences property is (a) the literal value of the maxOccurs attribute, if any, else (b) either the value of minOccurs, or 1, whichever is greater.
  • supply a literal default for both min- and max-
  • define no default for either min- or maxOccurs

It was observed that if literal defaults of 1 and 1 are supplied, a schema author could create an error by raising the minOccurs value and neglecting to edit the maxOccurs value. Some proponents of literal defaults agreed that this was a drawback to the use of literal defaults but argued that it was an acceptable cost for the advantage of eliminating conditional defaults. Some argued that since defaults of 1 and 1 are so easy to remember, it would be a rare schema author who didn't realize that maxOccurs needed to be raised if minOccurs was raised.

It was clarified that (given defaults of 1 and 1) processors would be required to flag <element ref='foo' minOccurs='2'/> as an error; it was observed that processors might choose to recover from this error by assuming maxOccurs='2' -- this might be reassuring to some, or alarming to others, but it is a consequence of our error handling policy, which requires all errors to be reported and does not specify behavior in the presence of errors.

A straw poll showed support for both the 'corrected status quo' and literal defaults, with a preponderance of both active support and toleration for literal defaults. The chair put the formal question accordingly

RESOLVED: to specify literal defaults for min / max Occurs in the XML transfer syntax. Dissenting: Maloney (by proxy).

The WG then discussed what the defaults should be. In a straw poll, there was a preponderance of opinion for 1 and 1 over 0 and unbounded. RESOLVED without dissent: to make the default for minOccurs and maxOccurs 1.

Formal response to commentator.

LC-53. shippers-and-billers: Shipper/biller vs. Shippee/billee in part 0

Issue Class: C Locus: primer 2.7 Cluster: typos Status: silent
Assigned to: editor Originator: Ray Gates

Description

Should the description of the example in Primer 2.7 be changed to replace shipper and biller with shippee (or recipient) and billee (or payer)?

Interactions and Input

Input from Ray Gates:

Ray_Gates@manulife.com to XML Schema Comments list, Tue, 18 Apr 2000 16:21:54 -0400

In part 0 (April 7), in section 2.7 Building Content Models, end of para. three, refers to "a single address for those cases where the shipper and biller are co-located."

Surely, this should read "shippee and billee".

Actual Resolution

Formal response to commentator.

LC-54. nonpositive-integer: Drop nonPositiveInteger?

Issue Class: D Locus: datatypes Cluster: 04 numeric Status: resolved
Assigned to: Ashok Malhotra Originator: Gregor Meyer

Description

Should the simple type nonPositiveInteger be dropped as unnecessary?

Interactions and Input

Input from Gregor Meyer:

petsa@us.ibm.com to XML Schema Comments list, Tue, 18 Apr 2000 10:29:41 -0400 (forwarding note from Gregor Meyer)

A minor comment on the recent XML Schema definitions: xmlschema-2.html defines a type nonPositiveInteger; I have never seen an application where this type would have been useful. The type nonNegativeInteger is often used, though. Is it intended to have an almost complete set of basic types defined by the standard? In my humble opinion there is no need for a standardized type nonPositiveInteger.

Actual Resolution

Discussed at Edinburgh ftf.

The nonNegativeInteger type is needed for the Schema for Schemas. The nonPositiveInteger type is supplied for symmetry. It is true that it will be needed only rarely, but implementation seems unlikely to be a burden, and the WG agreed to retain the type in the interests of symmetry.

LC-55. dt-namespace: Proper home namespace/resource for built-in datatypes

Issue Class: D Locus: datatypes Cluster: 21 ns Status: silent
Assigned to: Henry Thompson Originator: Curt Arnold

Description

What is the proper namespace for built-in datatypes? In particular, should the built-in datatypes be defined both in the XSD namespace and in their own namespace?

(Cf. issues QNames and reproSubstitution in the development-period issues list.)

Interactions and Input

Input from Curt Arnold:

"Curt Arnold" <carnold@houston.rr.com> to XML Schema Comments list, Fri, 21 Apr 2000 10:48:02 -0500

I know that there is some reorganization of the physical structure of the schema for schemas intended in the near future and this thought occurred to me while working on the previously mentioned schema compilation project.

Basically, all documents whether they are schemas or not will need to have implied definitions of the builtin datatypes in the same manner as they have an implied definition of xsi:type and xsi:null (especially since a built-in datatype name could be a value for an xsi:type attribute).

Only a minuscule fraction of documents need to have knowledge of the schema definition elements.

This seems to indicate that the definition of the built-in datatypes need to be defined in the xsi namespace (http://www.w3.org/1999/XMLSchema-instance).

Datatypes used in the schema definition elements that are not intended as generally available datatypes (typically commented as utility class not for public use) should be defined in XMLSchema.xsd and would be in the http://www.w3.org/1999/XMLSchema namespace.

When a processor is trying to resolve a type name that is not qualified, it would first look within the current schema and if there was no match, would then attempt to resolve within the schema instance namespace.

So, I'd suggest something like (freehanded definitions, not validated)

xsi.xsd

<schema targetNamespace="http://www.w3.org/1999/XMLSchema-instance">
    <simpleType name="urSimpleType"/>
    <simpleType name="string"/>
    <simpleType name="integer"/>
    ....
    <attribute name="type" type="QName"/>
    <attribute name="null" type="boolean"/>
</schema>

XMLSchema.xsd

<schema targetNamespace='http://www.w3.org/1999/XMLSchema">
  <import targetNamespace="http://www.w3.org/1999/XMLSchema-instance"
          schemaLocation="xsi.xsd"/>
  <!-- import of xml namespace goes here   -->

  <!--  since this is not in the instance namespace, 
        it will not be used to resolve
        unqualified names in other schemas   -->
  <simpleType name="XPathApprox"/>
  ...
  <attribute name="type" type="QName"/>
  <attribute name="null" type="boolean"/>
</schema>

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 21 Apr 2000 17:12:10 +0100

There is already a namespace and a schema for precisely what you have in mind, namely http://www.w3.org/1999/XMLSchema-datatypes

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Fri, 21 Apr 2000 11:32:55 -0500

I had seen that, but I wasn't sure what the intentions were. It seemed like it was defining a parallel namespace. It wasn't clear that the instance and schema definition namespaces would eventually import it and part2.xsd would no longer be included. Definitely seems the right way to go.

Input from Noah Mendelsohn:

Noah_Mendelsohn@lotus.com to XML Schema Comments list, Thu, 27 Apr 2000 00:16:22 -0400

Uh...I'm not sure it's quite that simple. If we are going to encourage coders of schema instance documents to use:

 <el xmlns:dt="http://www.w3.org/1999/XMLSchema-datatypes"  
     xsi:type="dt:integer"/>

as opposed to:

<el xsi:type="xsd:integer"/>

then we have to be very careful about the semantic implications. Did we finally manage to make these two "integer" types identical in the sense that they would be the same in the augmented infoset? If not, then your suggestion leads users into big problems. I do not typically want my infosets labeled with two subtly different sorts of integers.

Last I heard in New Orleans, we did not have this level of identity. If that is the case, then I think http://www.w3.org/1999/XMLSchema-datatypes is appropriate for use specifically in languages which will not interact with our schemas. We have been quite clear that the typical (though not required) idiom in a schema is:

<xsd:element name="el" type="xsd:integer"/>

This suggests to me that the intended instance is the 2nd one above. That said, I have reservations about combining dt: and xsi:; the types can be used in many situations in which xsi: itself would be inappropriate.

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Thu, 27 Apr 2000 00:00:13 -0500

I reviewed the schema for datatypes and there are several things that concern me about it:

  1. It introduces a parallel type hierarchy which would result in unnecessary confusion
  2. It doesn't use qualified names for the base datatype, which implies a special rule when the name and base values are the same. Otherwise an unqualified reference should refer an element in the current namespace and failing that then be resolved whatever namespace provides the built-in datatypes.
  3. It implies an implicit import of some namespace (to provide the built-in datatypes). If this implied import is the schema namespace, you haven't done anything to reduce the namespace since the entirety of the implicit namespace is still there.

My current thinking on this is that:

  • a) schema-datatypes should be the one and only definition of the built-in datatypes
  • b) schema-instance should import datatypes (at least implicitly) to resolve the QName type of xsi:type and the boolean type for xsi:null.
  • c) schema-instance and schema-datatypes are implicitly imported any any schema processing. If you provide an explicit import for the instance or datatypes, that resource will be used preferentially. Otherwise, the processor will provide them from its resources.
  • d) schema for schema can declare any necessary "utility" datatypes, however these are not available outside of schema for schemas without an explicit import and qualified reference.
  • e) when a schema interpreter is resolving an unqualified simple type name, it should first look for a matching type in the current namespace and if not found, then look for a matching type in the schema-datatypes namespace.
  • f) the base and name attribute should not be allowed to be the same unless the name is urDataType.
  • g) schema analysis and authoring environments should report a diagnostic message if a locally-scoped name conflicts with a type name in schema-datatypes. However, parsers should not treat that as an error and resolve to the locally scoped name first.

I believe this arrangement provides a near optimal partition. Built-in types can be accessed either through unqualified names or qualified with the datatypes namespace and generic XML documents do not need to import the symbol space for schema definition.

If not, however I would strongly recommend dropping or avoiding the parallel type hierarchy as currently defined in schema-datatypes.

Actual Resolution

Discussed in call of 2000-07-13.

The question is on the commentator's proposal that we revisit the allocation of our constructs to namespaces. We began consideration of this question in Austin in April 1999, and decided it most recently in New Orleans in March of this year.

The status quo is that all built-in simple datatypes are in a datatypes namespace, and also that all constructs (datatypes and structures) are in the 'xsd' namespace.

The commentator proposes that we remove the overlap, and have two disjoint namespaces, one for the built-in simple datatypes and one for everything else.

The WG discussed the issue.

RESOLVED unanimously: to dispose of issue LC-55 with a polite no, explaining that a separate namespace for datatypes does exist, that the relationship between the xsd and datatypes namespaces is clearly defined by the type derivation mechanism, and that the primer does say to prefer the xsd form over the other in schemas. Making the namespaces disjoint would only make it harder to exploit the default-namespace mechanism when defining schemas.

Formal response.

LC-56. schemaPrefix: Add schemaPrefix, targetPrefix attributes?

Issue Class: D Locus: structures Cluster: 19 modules Status: ok
Assigned to: Mark Reinhold* Originator: Curt Arnold

Description

Should schemaPrefix and targetPrefix attributes be added to the import and schema elements, in order to work around the problems caused by the inaccessibility of namespace-declaration information in XSLT and similar systems?

Interactions and Input

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Fri, 21 Apr 2000 12:12:23 -0500

Namespace prefix definitions (xmlns:prefix="uri" attributes) are not accessible from XSLT (and probably from anything else that tries to hide the details of namespacing from you) which means that it is not possible to resolve qualifed name references to types, for example, in those environments. I'd suggest adding an explicit schemaPrefix attribute to the import and targetPrefix attribute to the schema element. At least, this information could be used as decoration in the documentation. I am able to work around this using equivalent attributes from another namespace, but it seems like a general problem.

Actual Resolution

Discussed in call of 2000-06-30.

The suggestion has been withdrawn; the issue should be closed.

LC-57. include-maxdepth: Add maximum depth for includes?

Issue Class: D Locus: structures Cluster: 19 impl-modules Status: resolved
Assigned to: Matt Fuchs Originator: Curt Arnold

Description

Should implementations be allowed to have a maximum depth for includes? Should the spec define a minimum value for that maximum depth?

Interactions and Input

Cf. Arbitrary-precision decimal too much?

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Fri, 21 Apr 2000 12:12:23 -0500

Of course, any implementation has to have some limit on the depth of nested includes.

Actual Resolution

Discussed in call of 2000-06-30.

It might be a theoretical problem (if there is no limit, then for any processor it might be possible to build a valid schema document which the processor could not process -- i.e. it might become impossible to build a conforming processor, if conforming processors accept all and only valid schema documents), or it might be a practical problem. In fact, it seems very unlikely to be a practical problem in XML Schema, any more than it is in XML.

Olken suggested that we require schema processors to support at least 32 or more nested includes. Thompson observed that we don't limit the maximum depth of content models, or require support for any minimum level of nesting. There are all sorts of potential implementation limits we don't mention; the issue is spurious.

Peterson and Olken argued that file descriptor limits are rather different, in practice, from stack space, and might need special treatment on that ground. Sperberg-McQueen (who had begun by supporting Olken's proposal) observed with an air of surprise that, owing to the declarative nature of XML Schemas, the sequence of declarations has no significance, and it is not necessary to nest includes: they can be queued, and a processor could in theory make do with a single file descriptor for reading schema documents.

RESOLVED without dissent: to dispose of this issue with thanks but no change, on the grounds that it is not a serious implementation problem.

LC-58. import-conflicts: How to deal with nested imports?

Issue Class: D Locus: structures 6.3.2 Cluster: 58 impl-modules Status: resolved
Assigned to: Matt Fuchs Originator: Curt Arnold

Description

How should software react to conflicts between imports, when different schema components import the same namespace from different resources?

Interactions and Input

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Fri, 21 Apr 2000 12:12:23 -0500

A complicated issue is nested imports. It should be moderately common for multiple imports to in turn import some common namespace but possibly from different resources. Trying to resolve the potential conflicts seemed untenable.

How I've currently addressed it in my preprocessor is that only imports that in the schema being compiled add information to the validation package. If an import appears in an include or import and its namespace didn't have an import in the schema being compiled, an informative message is issued (but which might result in some unsatisfied references).

Input from Curt Arnold <carnold@houston.rr.com>:

"Curt Arnold" <carnold@houston.rr.com> to XML Schema Comments list (and xml-dev) on Thu, 11 May 2000 01:19:19 -0500

Section 6.3.2: Point 4

There would also be the need for some sort of statement when inconsistent schemaLocations appear for the same namespace. I would assume that the first would take precedence.

Input from Jim Trezzo <jtrezzo@us.oracle.com>:

Jim Trezzo <jtrezzo@us.oracle.com> to XML Schema Comments list on Fri, 12 May 2000 16:03:28 -0700

3. SchemaLocation problems

The XMLSchema spec seems to allow one to create XML schemas which can contain references to element declarations and type definitions from other namespaces, without having to provide the schemas that contains those definitions. In effect, each instance document can then suggest the location of the other schemas, or the schema processor must have some other way of finding them.

This presents a problem when we are trying to validate multiple documents against a schema (or create a repository for documents conforming to a schema), since each document might suggest changing the type structure for the elements in this schema.

The upshot of this is that implementations are required to provide a way of locating schemas outside of the <import> system if they want to avoid using the <schemaLocation> in the instance documents (which is horrible).

We would like to require specification of the schemaLocation attribute in an <import> element in the schema, so that we don't have to provide an alternative schema location mechanism for schemas that come to us without <import schemaLocation=>. The spec should still allow the <import> to be ignored like <schemaLocation>, for systems that will find schemas by other means.

Input from Murray Altheim:

Murray Altheim, Review of XML Schema Specification, 11 May 2000

Part 1 : Structures

§6.3.2 How schema definitions are located on the Web

Under Schema Representation Constraint: Schema Document Location Strategy, I'm simply amazed at the lack of constraint here. From my reading of this section, almost anything goes, and I don't understand how a conformance definition could include this normatively.

Actual Resolution

Discussed in calls of 2000-06-30 and 2000-07-06.

MSM suggested that conflicts among multiple imports are not a problem, because the schemaLoc information is only a hint; even if we did specify a rule for resolving conflicts, the processor could ignore all the hints -- it's not clear it would be possible to tell whether any processor implemented the conflict-resolution rule. The issue might be reclassified A, except that that might appear patronizing.

RESOLVED unanimously: to dispose of this issue by responding that the spec already tells you what to do: the schemaLoc values are hints. If you come across multiple imports for the same namespace, you are free to ignore the hints; if you process a document for a namespace, and discover it has a conflicting definition for something you already have a definition for, it's an error. [Unless you back out everything you've done with the second file and pretend you never opened it.]

The relevant sections of the spec should be mentioned in the response (since it might be just a question of the commentator not having found them). They are 6.2, and the section that forbids conflicts among declarations for the same item.

This issue also contains a separate point, namely Oracle's proposal to require a schemaLoc hint on the import element.

The NS name might suffice, some said, but isn't guaranteed to produce a schema. Requiring a schema location hint places no particular burden on the processor or author, processor can always ignore it.

At least two grounds for objection were identified: (1) schemaLoc on the import statement is now, and should be, parallel in usage to schemaLoc on elements in the document instance, and (2) requiring schemaLoc would suggest that in principle the namespace name cannot be expected to serve as a URI for the schema; in the view of some WG members (at least), the normal case should be to use the namespace name to retrieve the schema, and schemaLoc should be reserved for unusual (if not for pathological) cases.

RESOLVED unanimously: make this a priority feedback issue.

LC-59. list-sep: Allow user-defined list separators?

Issue Class: D Locus: datatypes Cluster: 03 constructors Status: silent
Assigned to: Mary Holstege Originator: Dario de Judicibus

Description

Should the list type constructor be modified to allow the schema author to specify an arbitrary character (or string, or regular expression) for the item separator?

Interactions and Input

Input from Dario de Judicibus:

"Dario de Judicibus" <ddj@mclink.it> to XML Schema Comments list, Tue, 25 Apr 2000 23:12:02 +0200

The proposals first. The first one is related to lists of strings (simple types). Standards state that no list of string can be defined if some string contain spaces, because list are space separators. In my personal opinion this is a weakness of the standard, especially if you consider that we are speaking of Unicode strings, where the concept (and code point) of space may differ from language to language. What about adding a new facet for simple types which allow to specify the list separator? Default would be blank space 0x20. So we might have

<xsd:simpleType name="ThreeCountries" base="Country" derivedBy="xsd:list">
  <xsd:length value="3" />
  <xsd:separator value=";" />
</xsd:simpleType>

<xsd:element name="threeCountries" type="ThreeCountries" />

<threeCountries>United States of America;Italia;San Marino</threeCountries>

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Wed, 26 Apr 2000 07:56:59 -0500

I am a long time observer of the W3C XML Schema spec and not a member of the W3C or the working group, so what I'm going to say is not official W3C, but things covered in previous posts.

List separators: The working group explicit decided to allow only the space separated lists at this time. Even getting that took a whole lot of work. Some other W3C work (scalable vector graphics) for instance does use other delimiters and if this is going to be changed it will be done to accomodate the uses in other W3C efforts.

Actual Resolution

Discussed at Edinburgh ftf.

While we know this can useful, it is a slippery slope; lists are included only for legacy purposes in the first place. Microstructure such as this requires the presence of a schema to parse, and in general we wish to limit amount of secondary notations processors need to parse.

So, thank you but we don't believe this would be a wise change.

Formal response sent 11 July. Commentator has not replied.

LC-60. any-att: Change meaning of anyAttribute?

Issue Class: A Locus: structures Cluster: 10 openness Status: unassigned
Assigned to: Roger Costello* Originator: Dario de Judicibus

Description

Should the anyAttribute particle be changed to mean not "any attribute from a particular namespace" but instead "any attribute from a particular attribute group in a particular namespace"? [Unsure of specific change intended. -MSM]

Interactions and Input

Input from Dario de Judicibus:

"Dario de Judicibus" <ddj@mclink.it> to XML Schema Comments list, Tue, 25 Apr 2000 23:12:02 +0200

The comments now. The first is related to <anyAttribute>. Differently from <any>, it does not look useful to allow any attribute of a specific schema to be used in a specific element of another schema. It makes more sense to allow any attribute belonging to an attribute group of a specific schema to be used in another element. For example

<xsd:element name="image">
  <xsd:complexType>
    <anyAttribute namespace="http://www.w3.org/xhtml"
        group="attributesForImg" />
  </xsd:complexType>
</xsd:element>

LC-61. simple-records: Allow record-style simple types?

Issue Class: D Locus: datatypes Cluster: 03 constructors Status: silent
Assigned to: Frank Olken Originator: Dario de Judicibus

Description

Should the datatypes spec be modified to allow the construction of types with simple internal structure (e.g. to allow both quantity and units of measure to be captured in the same simple type)?

Interactions and Input

Cf. Suggestion: Microparsing support in XML Schema

Input from Dario de Judicibus:

"Dario de Judicibus" <ddj@mclink.it> to XML Schema Comments list, Tue, 25 Apr 2000 23:12:02 +0200

Final comment: there is no way to combine types. For example, if I have

<xsd:simpleType name="units">
  <enumeration value="cm" />
  <enumeration value="in" />
</xsd:simpleType>

I have no way to define

<height>12.4cm</height>

by combining xsd:decimal and units. That might be very useful. We might use a variant of pattern for that:

<xsd:complexType name="heightWithUnits">
  <xsd:pattern>
    <xsd:part type="xsd:decimal" />
    <xsd:part value="\p{Zs}*" />
    <xsd:part type="units" />
  </xsd:pattern>
</xsd:complexType> 

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Wed, 26 Apr 2000 07:56:59 -0500

The schema group stated that aggregate types were outside the scope of the initial version. Derivation by list was a hard fought exception to that principle.

If you are interested in discussions of dimensional units in XML, I can send you URL's to quite a few discussions.

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

The one area I still expect we are going to have problems in using datatype for electronic commerce is measurements. For example, how can I check that 100cm and 1m are exactly equivalent, but 1yd is not. But again I do not expect you to have addressed these problems at this state. (Schema2 will be along within a few years!)

Actual Resolution

Discussed at Edinburgh ftf.

We think it would be unwise to introduce secondary notations for representing structures which can be represented satisfactorily using XML.

Formal response.

Another commentator is prepared to wait until version 2.0.

LC-62. multi-facet: Doubly specified facets

Issue Class: D Locus: datatypes Cluster: 25 facets Status: resolved
Assigned to: Mary Holstege, Ashok Malhotra Originator: Ray Waldin

Description

How should schema processors treat derivations of simple types which re-specify facets? In particular, should or must they signal an error if the re-specified facets are less restrictive than the original values, not more? Can period and duration be usefully respecified at all?

Interactions and Input

Input from Ray Waldin:

Ray Waldin <rwaldin@pacbell.net> to XML Schema Comments list, Wed, 26 Apr 2000 03:45:10 -0700 (as corrected 26 Apr 2000 03:51:53 -0700).

I have some questions and a comment concerning SimpleTypes derived "by restriction". To illustrate:

<simpleType name="firstType" base="decimal">
  <minInclusive value="1"/>
  <maxInclusive value="10"/>
</simpleType>

<simpleType name="secondType" base="firstType">
  <minInclusive value="2"/>
  <maxInclusive value="5"/>
</simpleType>

This seems perfectly acceptible as secondType is derived from firstType "by restricting its value space", by specifying "more restrictive" values for some facets. Here's a case that's not so obvious, using "less restrictive" values:

<simpleType name="thirdType" base="firstType">
  <minInclusive value="0"/>
  <maxInclusive value="11"/>
</simpleType>

My questions:

Is this disallowed or just pointless? In other words, should a schema processor regard this type derivation as an error, or simply produce a thirdType which is no more restrictive than firstType?

What does "more restrictive" mean for the period and duration facets? Can period and duration be re-specified in any meaningful way or is re-specifying either of these values disallowed?

If a derived type re-specifies the pattern facet (as in the case of NCName and Name), are schema processors expected to: A) ensure that a derived type specifies a "more restrictive" pattern than its base type, or B) check all patterns in a type's derivation hierarchy when validating an instance of that type?

My comment:

The datatypes spec should elaborate on the expected behavior of schema processors when encountering derived types which re-specify values for each facet.

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Wed, 26 Apr 2000 07:33:29 -0500

My personal preference would be that "looser" facets would be tolerated, though an ideal schema profiler might tell that you are wasting cycles or optimize the evaluation. I don't think that suboptimality is a good reason to reject a document and the complexity involved in determining the active constraint set is not justified in my opinion. While figuring out the looser constraint is fairly obvious for min/max, what if were trying to better if one pattern is looser than another (and both could be active).

As a pattern, I know of no programming language that would fail to compile a conditional like:

if(a > 1 && a > 2 && a < 5 && a <10) {}

It would be a conceptual error for the duration facet to be specified with two distinct values in a type hierarchy. You shouldn't be able to derive from day and stretch the day to 25 hours. The resulting type (25 hour periods starting at a particular midnight) doesn't fit into the value space of 24 hour periods starting at midnight. I could see making a duplicate specification of duration in a hierarchy an error, I would not try to determine if the values of the duration were identical (say if one had said P1D and another PT3600s)

Multiple period facets can make sense in a hierarchy make sense. You could create a derived type from time with a period of 48 hours that represented a particular time of day every other day. I can't see anything a schema validation can do with the period facet. It seems like a piece of information only the application uses (if it wants) to determine the meaning of the type.

Proposed Resolution

Discussed at Edinburgh ftf. RESOLVED to require processors to detect restrictions which specify a broader range than the base, and report them as errors.

Open questions: how to zero out the value set, whether vacuous restrictions should be errors or not.

Actual Resolution

Discussed in call of 2000-07-21.

In Edinburgh we agreed that it was an error to re-specify a facet if the re-specification did not restrict the value space (or at least leave it unchanged). (Not clear whether this applies to regexes in the pattern facet or not.)

AM recollects that this does not apply to regex patterns, on account of technical cost. Allowed to issue warning.

RESOLVED: make failure to check this constraint on 'pattern' a priority feedback issue.

We left open questions relating to how to zero out value set, vacuous restrictions.

The minutes read in part:

Diagram of the state of play:

    1-10 ==> 1-10 postponed
    1-10 ==> 0-10 error, decided
    1-10 ==> 11-12 postponed

RESOLVED unanimously to make Vacuous restriction legal.

RESOLVED: to make zeroing out the value space illegal. Dissent: Sperberg-McQueen (rationale: the empty set is an important tool in reasoning about sets; forbidding it because we think it won't 'normally' be a good idea is not good language design) Abstentions: none.

LC-63. cm-recursion: Forbid recursion in content models?

Issue Class: C Locus: structures Cluster: 12 content-models Status: silent
Assigned to: editor Originator: Richard Tobin

Description

Should the structures spec be modified to forbid recursion in names content models?

Interactions and Input

Input from Richard Tobin:

Richard Tobin <richard@cogsci.ed.ac.uk> to XML Schema Comments list, Wed, 26 Apr 2000 15:12:10 +0100

The use of named model groups allows content models that are not regular expressions. For example:

  <s:group name="recur">
    <s:sequence>
      <s:element name="open"/>
      <s:group ref="recur" minOccurs="0" maxOccurs="unbounded"/>
      <s:element name="close"/>
    </s:sequence>
  </s:group>

Useful though this would be, it is probably not intended.

Actual Resolution

Formal response to commentator.

LC-64. entities: Entities

Issue Class: A Locus: structures Cluster: entities Status: silent
Assigned to: Priscilla Walmsley Originator: Dario De Judicibus

Description

What happened to general entities? Should XML Schema be modified to make it possible to declare general entities?

Interactions and Input

Cf. Support declaration of character entities?

Input from Dario de Judicibus:

dejudicibus@it.ibm.com to XML Schema Comments list, Thu, 27 Apr 2000 12:41:19 +0200

Maybe this is trivial for those of you joined this group long time ago, but I cannot find info about:

in one of the old draft of XML Schema, it was possible to define entities too. For example

<textEntity name='rights'>All rights reserved.</textEntity>

Why that is no more possible? And what can I use to define entities, now?

Actual Resolution

Formal response to commentator.

LC-65. optional-minmax: Why are {min occurs}/{max occurs} optional in Attribute Declaration?

Issue Class: C Locus: structures 3.2 Cluster: 14 attldecl Status: silent
Assigned to: editor Originator: James Tauber

Description

Is there an error in the description of the Attribute Declaration component? Why are the properties {min occurs} and {max occurs} optional?

Interactions and Input

Input from James Tauber:

James Tauber <JTauber@bowstreet.com> to XML Schema Comments list, Fri, 28 Apr 2000 02:42:09 -0400

Why are {min occurs} and {max occurs} optional in Attribute Declaration?

The meaning of "absent" for these properties doesn't seem to be defined in 3.2 and I can't think of what it would be.

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 28 Apr 2000 08:54:07 +0100

Because they don't make sense on top-level declarations. It's entirely parallel to element declarations, just less obvious because we make Particle explicit between content model and element declaration, but leave what my parser calls AttributeUse implicit between type def and attr decl.

Input from James Tauber:

James Tauber <JTauber@bowstreet.com> to XML Schema Comments list, Fri, 28 Apr 2000 03:55:45 -0400

Because they don't make sense on top-level declarations.

So, could a sentence be added to this effect?

Actual Resolution

Formal response to commentator.

LC-66. urtype-unnamed: {name} of the Ur-Type

Issue Class: A Locus: structures 3.4 Cluster: urtype Status: silent
Assigned to: Henry Thompson Originator: James Tauber

Description

Is there an error in the description of the Ur-Type? Why is its {name} property shown as "Not specified?" Does that mean "absent"?

Interactions and Input

Input from James Tauber:

James Tauber <JTauber@bowstreet.com> to XML Schema Comments list, Fri, 28 Apr 2000 04:16:55 -0400

Why is the {name} of the Ur-Type (as a Complex Type) in 3.4 shown as "Not specified"? How is this different from "absent"?

I assume that anonymous complex types in general have "absent" as their {name} or is this not true?

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 28 Apr 2000 09:22:11 +0100

Why is the {name} of the Ur-Type (as a Complex Type) in 3.4 shown as "Not specified"? How is this different from "absent"?

No particular reason - should probably be 'absent'.

I assume that anonymous complex types in general have "absent" as their {name} or is this not true?

Correct.

Actual Resolution

Formal response to commentator observes that the question is now moot, since the urType now has an explicit name (see issue LC-74.

LC-67. absence-null: Why does absent point to definition for null in glossary?

Issue Class: C Locus: structures 3.4 Cluster: sfs Status: silent
Assigned to: editor Originator: James Tauber

Description

Is there an error in the links from the term "absent"? Why does it link to the glossary entry for "null"?

Interactions and Input

Input from James Tauber:

James Tauber <JTauber@bowstreet.com> to XML Schema Comments list, Fri, 28 Apr 2000 04:18:37 -0400

Why does "absent" in the "Complex Type Definition of the Ur-Type" tableau (and possibly elsewhere) point to the definition for "null" in the glossary?

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 28 Apr 2000 10:33:33 +0100

That's a bug, arising from a late decision to change from 'null' to 'absent'.

Actual Resolution

Formal response to commentator.

LC-68. simple-urtype: Should there be a Simple Type Definition of the Ur-Type?

Issue Class: C Locus: structures 3.4/3.13 Cluster: urtype Status: silent
Assigned to: editor Originator: James Tauber

Description

Should there be a simpleType definition of the urtype?

Interactions and Input

Input from James Tauber:

James Tauber <JTauber@bowstreet.com> to XML Schema Comments list, Fri, 28 Apr 2000 04:20:18 -0400

I thought there used to be a Simple Type Definition of the Ur-Type? Should there be one in 3.13 parallel to the one for Complex Types in 3.4? Or am I missing something?

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 28 Apr 2000 10:36:39 +0100

This is a tricky issue. The ur-type is neither simple nor complex. What's given in 3.4 is what it looks like as the base of a complex type definition. There's no way to show what it looks like as the base of a simple type definition, or rather, that would simply be a simple type definition with no values for any of the properties, which would not be terribly helpful.

I agree the prose explaining all this is less than satisfactory.

Input from James Tauber:

I get it totally now that you have explained to me, which seems to suggest that an additional sentence or two in the prose could do a great deal.

Actual Resolution

Formal response to commentator.

LC-69. any-att-process: Should "anyAttribute" have a "processContents" attribute?

Issue Class: C Locus: structures 4.3.3 Cluster: 14 attldecl Status: silent
Assigned to: editor Originator: James Tauber

Description

Should the DTD and schema for schemas define a processContents attribute for the anyAttribute element?

Interactions and Input

Input from James Tauber:

James Tauber <JTauber@bowstreet.com> to XML Schema Comments list, Fri, 28 Apr 2000 07:28:18 -0400

In the XML Representation Summary for anyAttribute in 4.3.3, anyAttribute is not shown as taking a processContents attribute. The schema for schemas and the DTD for schemas does not allow it, either.

However, 1.1 of the {attribute wildcard} property correspondence mentions it.

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 28 Apr 2000 14:29:32 +0100

It should allow it, you're right.

Actual Resolution

Formal response to commentator.

LC-70. local-alone: Can ##local stand alone in namespace attribute or must it be in a list?

Issue Class: C Locus: structures 4.3.7 Cluster: 10 openness Status: silent
Assigned to: editor Originator: James Tauber

Description

Should the representation summary for the any element be changed to clarify the usage of ##local?

Interactions and Input

Input from James Tauber:

James Tauber <JTauber@bowstreet.com> to XML Schema Comments list, Fri, 28 Apr 2000 09:16:47 -0400

In 4.3.7, in the representation summary for the "any" element information item, it indicates that the attribute "namespace" takes either:

  • ##any
  • ##other
  • ##local
  • list of {uri, ##targetNamespace}

However, in the "otherwise" section of the correspondences to the Wildcard Schema Component, it refers to ##local as being a substring in the list (and this is in fact the only mention of ##local)

Should the representation summary really read:

namespace = ##any
              | ##other
              | list of {uri, ##targetNamespace, ##other}

?

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 28 Apr 2000 14:33:10 +0100

Your analysis is correct. But I think you typoed above -- the corrected summary should read

namespace = ##any 
          | ##other
          | list of {uri, ##targetNamespace, ##local}

Actual Resolution

Formal response to commentator.

LC-71. value-constraint: {value constraint} in top-level attribute declarations

Issue Class: C Locus: structures 3.2/4.3.1 Cluster: 14 attldecl Status: silent
Assigned to: editor Originator: James Tauber

Description

Should the meaning of the value-constraint property for attributes be clarified?

Interactions and Input

Input from James Tauber:

James Tauber <JTauber@bowstreet.com> to XML Schema Comments list, Fri, 28 Apr 2000 15:52:55 -0400

In 3.2, the {value constraint} property of Attribute Declaration components seems to allow a (value, absent) pair. This is supported by the property correspondences for "attribute" element information items (4.3.1) directly under "schema" where {value constraint}'s representation is:

If there is a value attribute, then a pair consisting of the lexical value of that attribute and absent, otherwise absent

What is the meaning of a {value constraint} that is a (value, absent) pair?

In this particular case, it seems the value of the "use" attribute is ignored, but doesn't it default to "optional"?

Actual Resolution

Formal response to commentator.

LC-72. target-ns: Representation of {target namespace} in second case has parent instead of ancestor

Issue Class: C Locus: structures 4.3.1 Cluster: 14 attldecl Status: silent
Assigned to: editor Originator: James Tauber

Description

Should the word parent be changed to ancestor in the representation of the {target namespace} property for attribute declaration components (case 2)?

Interactions and Input

Input from James Tauber:

James Tauber <JTauber@bowstreet.com> to XML Schema Comments list, Fri, 28 Apr 2000 16:10:56 -0400

In the second case in 4.3.1, a representation is given for when the attribute element information item is not a direct child of schema (that's the first case). However, in the representation of {target namespace} it refers to the targetNamespace attribute of the parent schema element.

Should this say "ancestor"?

Actual Resolution

Formal response to commentator.

LC-73. namespace-versioning: XML Schema Namespace versioning

Issue Class: D Locus: structures Cluster: 21 publication Status: ok
Assigned to: Dan Connolly*, Henry Thompson Originator: Henry Thompson

Description

Should the URI reference used for the XML Schema namespace change with each revision of the spec? Or not? Does the status of the spec (draft, CR, PR, Rec) matter?

Interactions and Input

Cf. Use 2000 not 1999 in XML Schema namespace name?

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 28 Apr 2000 23:04:12 +0100

"Joseph M. Reagle Jr." <reagle@w3.org> writes:

I used to both schema and DTD validate, but I didn't realize these things had moved. I'll try using these URLs and see if it still works. However, this policy of locating the schema and DTD at the namespace is pretty confusing. I appreciate you don't want to change the namespace every time you issue a new draft and I hope you would try every time you made a substantive change, because now the result is that even if I write my XML instance that (today) validates under [1,2] next time you put out a new draft it won't! Before, not updating your namespace violated a philosphical point (but the actual dtd and schema were in a more specific (month) date space). Now you are violating a more practical point, if I have an example that works now based on something in date space it won't in the future. (I think, right?)

[1] http://www.w3.org/1999/XMLSchema.dtd

[2] http://www.w3.org/1999/XMLSchema.xsd

Well, it's a difficult point. I'd say we don't have a namespace yet, we're just working towards having one, and using the same name so people will get used to it as the XML Schema namespace.

I appreciate your point about things going stale -- if we ever make a backwards incompatible change, we'll put the old schema and dtd somewhere in date space and you can use them for your stale documents.

We're in new territory here (never before has there been a definitive and operational anything at a namespace URI before), Dan and I have been making policy by the seat of our pants, by all means lets keep discussing this, but move the archiving to the public comments list (see addresses above).

Input from Dan Connolly:

Dan Connolly <connolly@w3.org> to XML Schema Comments list, Fri, 28 Apr 2000 17:48:22 -0500

"Henry S. Thompson" wrote:

Well, it's a difficult point. I'd say we don't have a namespace yet, we're just working towards having one, and using the same name so people will get used to it as the XML Schema namespace.

Really? That seems like an odd way of looking at things, to me. It's quite clear to me that we have a namespace; the definition is what you get back from http://www.w3.org/1999/XMLSchema.

And if we change the definition, it's sort of antisocial to re-use the old address, as Joseph has observed. Though this is work-in-progress stuff, and we don't really plan to support drafts once they've been superceded, we might as well avoid the sort of problems Reagle is having when it's easy to do.

I appreciate your point about things going stale -- if we ever make a backwards incompatible change, we'll put the old schema and dtd somewhere in date space and you can use them for your stale documents.

Again, that seems backwards; if we make backwards-incompatible changes, the thing to do is to leave the old one alone and use a new identifier for the new definition. It's not really fair to expect folks to change pointers in old documents.

If we decide to break their old documents, i.e. to not support them, that's one thing. But the way to support them, if we're going to go to any trouble at all, is to just leave the old definition in place if we make a new, incompatible one.

Input from Joseph M. Reagle Jr.:

Joseph M. Reagle Jr. <reagle@w3.org> to XML Schema Comments list, Fri, 28 Apr 2000 18:15:46 -0400

At 23:04 2000-04-28 +0100, Henry S. Thompson wrote: I appreciate your point about things going stale -- if we ever make a backwards incompatible change, we'll put the old schema and dtd somewhere in date space and you can use them for your stale documents.

But I can't touch my WD in the TR space, which used to work and won't when you make these changes.

Input from Noah Mendelsohn:

Noah_Mendelsohn@lotus.com to XML Schema Comments list, Fri, 28 Apr 2000 19:12:23 -0400

Dan, I think you're presuming answers to a versioning architecture for XML and namespaces. I believe that to be a known hard problem which, in spite of my suggestions to the contrary [1], the XML activity has so far declined to formally consider (I believe it was discussed informally at a CG meeting, perhaps in Montreal last year.)

Everything you propose, i.e. immutable namespaces, makes sense in isolation. The problem I see is that none of the other necessary XML machinery has been developed. Let's assume that some particular vocabulary undergoes within a year 20 minor modifications, mostly bug fixes,introducing little incompatibilities that are not of concern to the vast majority of users. So, over the course of the year, 100,000 documents are written to this vocabulary, 5,000 in each of the 20 namespaces. Question: how do I build and maintain 30 XSL stylesheets that do the right thing with these documents? For the sake of discussion, none of the stylesheets happen to make use of any of the features that were affected by the 20 bug fixes. Were it not for the decision to make namespaces immutable, a single set of 30 stylesheets would suffice, and none of the 30 would have required change through the year. Presuming immutable namespaces, which do indeed have many desirable architectural properties, I either need 600 stylesheets (30 useful sheets x 20 namespaces used in the instances), or some rather messy disjunctions in each of my XPaths.

I do not propose that we go into an extensive discussion of versioning here. I merely wish to agree with Henry that the answers are far from clear, and in that sense we are feeling our way. I think we are far from having worked out the practical ramifications of any particular fixed design for versioning, including any that might be based on immutable namespaces. It is my opinion that almost anything practical we do for robust versioning of XML vocabularies will require some serious engineering in one or another of our existing XML specifications (e.g. XPath, if you believe the analysis above). Pending such developments, I think we in the schemas group will have to make decisions that are somewhat ad hoc at times, perhaps republishing minor fixes as changes to the same namespace, with some means of deploying new ones for major changes. In short, I think we are about to get bitten by an overall lack of investment in figuring out how to do namespace and vocabulary versioning in a robust manner. Maybe I am just being too pessimistic.

[1] http://lists.w3.org/Archives/Member/w3c-xml-plenary/1999Oct/0019.html (My apologies to those on the schema comments list who cannot access this member-only e-mail archive. The note basically suggests that versioning is an important problem that will rear its head soon, and points out some of the issues to be considered.)

Input from Dan Connolly:

Dan Connolly <connolly@w3.org> to XML Schema Comments list, Fri, 28 Apr 2000 20:44:40 -0500

Noah_Mendelsohn@lotus.com wrote:

Dan, I think you're presuming answers to a versioning architecture for XML and namespaces.

I'm observing an answer. Not the only answer, but one that is known to work (i.e. to avoid the problem Joseph ran into).

I believe that to be a known hard problem which, in spite of my suggestions to the contrary [1], the XML activity has so far declined to formally consider (I believe it was discussed informally at a CG meeting, perhaps in Montreal last year.)

Declined to consider versioning? Hardly! Evolution of specs is one of W3C's core values. cf "Web Architecture: Extensible Languages" http://www.w3.org/TR/1998/NOTE-webarch-extlang-19980210

I guess it could depend on your definition of 'formal'. But... I look hard at forward/backward compatibility of all the specs, and I'm not the only one. We insisted on some last-minute changes to XSLT (a way to make xslt:message act as a halt-and-catch-fire instruction) for exactly this reason.

Everything you propose, i.e. immutable namespaces, makes sense in isolation. The problem I see is that none of the other necessary XML machinery has been developed. Let's assume that some particular vocabulary undergoes within a year 20 minor modifications, mostly bug fixes,introducing little incompatibilities that are not of concern to the vast majority of users. So, over the course of the year, 100,000 documents are written to this vocabulary, 5,000 in each of the 20 namespaces. Question: how do I build and maintain 30 XSL stylesheets that do the right thing with these documents?

I think you've answered your own question. You just do. It's hard and awkward, but clearly it's possible.

The answer I'm talking about meets some requirements (namely, that you can write a document and be assured that it will be interpreted consistently henceforth) but doesn't meet others, i.e. easy maintenance of stylesheets.

For the sake of discussion, none of the stylesheets happen to make use of any of the features that were affected by the 20 bug fixes. Were it not for the decision to make namespaces immutable, a single set of 30 stylesheets would suffice, and none of the 30 would have required change through the year. Presuming immutable namespaces, which do indeed have many desirable architectural properties, I either need 600 stylesheets (30 useful sheets x 20 namespaces used in the instances), or some rather messy disjunctions in each of my XPaths.

Right.

I do not propose that we go into an extensive discussion of versioning here. I merely wish to agree with Henry that the answers are far from clear, and in that sense we are feeling our way.

I agree that the whole general problem of language evolution is messy. But I maintain that there's one mechanism, immutable resources, that's known to avoid the problem Joseph ran into.

I think we are far from having worked out the practical ramifications of any particular fixed design for versioning, including any that might be based on immutable namespaces. It is my opinion that almost anything practical we do for robust versioning of XML vocabularies will require some serious engineering in one or another of our existing XML specifications (e.g. XPath, if you believe the analysis above). Pending such developments, I think we in the schemas group will have to make decisions that are somewhat ad hoc at times, perhaps republishing minor fixes as changes to the same namespace, with some means of deploying new ones for major changes.

Sure... I just disagree that Henry's approach of "we'll put the old one someplace that you can find it" is very useful.

In short, I think we are about to get bitten by an overall lack of investment in figuring out how to do namespace and vocabulary versioning in a robust manner. Maybe I am just being too pessimistic.

If we had to design all parts of the Web before we deployed anything, where would we be? I guess I have a little more faith that economical solutions will present themselves in a timely fashion ;-)

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 29 Apr 2000 10:13:24 +0100

I'll make three observations:

1) In the nicest possible way, I'm not sure what we owe to Joseph on this one. We have not published this namespace yet, in the sense of asserting publicly in a process-blessed way that http://www.w3.org/1999/XMLSchema is the namespace URI for a namespace whose semantics are defined in some officially approved REC.

2) The thrust of Dan's remarks are at odds with my memory of the discussions surrounding the decision to enforce http://www.w3.org/1999/XSL/Transform as the namespace URI for XSLT, which strongly suggested a philosophical stance about persistent identity clearly at odds with the practical reality of changing details. In particular the decision to not add a version number to that NS URI was taken after considerable thought.

I'm afraid this takes us back to my concern about too-tight connection between namespace URI and presumed resource (= XML Schema in this case) location.

3) There's certainly precedent for 'stable' resources evolving: the XML Spec DTD still lives at http://www.w3.org/XML/1998/06/ although it's currently in its 21st edition.

Input from Dan Connolly:

Dan Connolly <connolly@w3.org> to XML Schema Comments list, Sat, 29 Apr 2000 09:27:15 -0500

"Henry S. Thompson" wrote:

... 1) In the nicest possible way, I'm not sure what we owe to Joseph on this one. We have not published this namespace yet, in the sense of asserting publicly in a process-blessed way that http://www.w3.org/1999/XMLSchema is the namespace URI for a namespace whose semantics are defined in some officially approved REC.

While it's true that we're not 100% bound to support old drafts, I hope that the spec will gradually stabilize; i.e. that we'll gradually make more of an attempt to avoid problems like the ones Joseph ran into.

2) The thrust of Dan's remarks are at odds with my memory of the discussions surrounding the decision to enforce http://www.w3.org/1999/XSL/Transform as the namespace URI for XSLT, which strongly suggested a philosophical stance about persistent identity clearly at odds with the practical reality of changing details. In particular the decision to not add a version number to that NS URI was taken after considerable thought.

I'm not sure what you mean by "enforce", but perhaps that's no matter...

My remarks aren't at odds with the way the XSLT namespace works; they just don't apply. The XSL WG decided not to promise that the XSLT namespace won't change. I think they made some promise about never changing the namespace is such a way that would change the semantics of a stylesheet that conforms to XSLT 1.0, but they left open the possibility of backward-compatible changes to the namespace (where "backwards-compatible change" is not formally specified).

I have not said that every namespace resource must be immutable. I have just said that using immutable resources as namespaces has some desireable characteristics, including avoiding the "that schema just changed out from under me" problem that Joseph ran into.

I'm afraid this takes us back to my concern about too-tight connection between namespace URI and presumed resource (= XML Schema in this case) location.

In any particular way? Or just general unease?

3) There's certainly precedent for 'stable' resources evolving: the XML Spec DTD still lives at http://www.w3.org/XML/1998/06/ although it's currently in its 21st edition.

I'm not sure what you mean by 'stable'. That resource isn't "stable published" in the Ted Nelson sense; it changes whenever Eve feels like it. Contrast that with http://www.w3.org/TR/1998/REC-xml-19980210 or http://www.ietf.org/rfc/rfc0822.txt which are guaranteed by their publishers not to change, or mid:f5b66t16zij.fsf@cogsci.ed.ac.uk which is guaranteed by the definition of the URI scheme not to change.

Input from Joseph M. Reagle Jr.:

Joseph M. Reagle Jr. <reagle@w3.org> to XML Schema Comments list, Mon, 01 May 2000 15:39:35 -0400

At 09:27 2000-04-29 -0500, Dan Connolly wrote: BTW: Has there ever been any consideration in schema (I thought I saw this but don't see it presently) to include a location attribute in the schema element type? If a namespace need not be dereferencable (like PUBLIC) then wouldn't it make sense to include a SYSTEM as well?

Found it, I knew that I saw it before: 2.6.3 xsi:schemaLocation, xsi:noNamespaceSchemaLocation The xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes http://www.w3.org/TR/xmlschema-1/#xsi:schemaLocation

So including these attributes in the schema for schema example in the spec would be helpful.

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 01 May 2000 21:42:20 +0100

I'm confused by the above extracts, perhaps the context would have clarified things.

SYSTEM and PUBLIC are part of the mechanisms by which an XML instance points to external entities, in particular to (the external subset of) DTDs.

The analogous aspects of XML instances for schemas are xsi:schemaLocation and xmlns, where xsi is declared as http://www.w3.org/1999/XMLSchema-instance.

You can put a schemaLocation attribute from that namespace on any element in any document without it needing a declaration.

There's a lengthy discussion of all this in section 3 of chapter 6 of the spec. [1].

I'm slightly at a loss to know exactly what you are asking for -- are you suggesting that the schema for schemas should be modified to include a namespace declaration for http://www.w3.org/1999/XMLSchema-instance and a schemaLocation attribute from that namespace? We could do that, but since the schema which applies to the schema for schemas, which is of course itself (:-), actually does live at its namespace URI, there didn't seem any point.

I'm also perplexed by the analogy with SYSTEM and PUBLIC, in that in vanilla XML 1.0, you don't find those inside DTD documents at all.

But maybe that's not what you meant.

Input from Joseph M. Reagle Jr.:

Joseph M. Reagle Jr. <reagle@w3.org> to XML Schema Comments list, Tue, 02 May 2000 18:38:42 -0400

I'm not surprised as I wasn't being very cogent. <smile> I was thinking something like the following would've mitigated my confusion (particularly as represented in the spec so I would know where to find things).

<xml version='1.0'?>
<!-- XML Schema schema for XML Schemas: Part 1: Structures -->
<!DOCTYPE schema
  PUBLIC "-//W3C//DTD XMLSCHEMA 19991216//EN" 
  "http://www.w3.org/1999/XMLSchema.dtd">

<schema xmlns="http://www.w3.org/1999/XMLSchema" 
        targetNamespace="http://www.w3.org/1999/XMLSchema" 
        blockDefault="#all" 
        elementFormDefault="qualified"  
        version="Id: XMLSchema.xsd,v 1.1 2000/04/06 13:51:05 aqw Exp" 
        xsi:schemaLocation ="http://www.w3.org/1999/XMLSchema.xsd" >

Input from Henry S. Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 03 May 2000 09:36:37 +0100

Right, we could have done that, and anticipating that there may be processors which chose never to attempt dereferencing namespace URIs perhaps we should.

Input from Joseph M. Reagle Jr. <reagle@w3.org>:

"Joseph M. Reagle Jr." <reagle@w3.org> to XML Schema Comments list on Wed, 10 May 2000 12:48:14 -0400

2.5 Names and Symbol Spaces

The fact that you are using the same namespace "http://www.w3.org/1999/XMLSchema" across different specifications with substantively different syntaxes may cause problems for applications that expect the definition of a dated name space to be stable. See http://lists.w3.org/Archives/Public/xmlschema-dev/2000Apr/0026.html for more discussion on this topic:

Actual Resolution

Discussed in call of 2000-07-13.

The question is first on the policy we should be following with regard to changes in our namespace and changes in our spec. Frequent changes inconvenient implementors and schema authors; infrequent changes can lead to confusion and silent invalidation of existing data.

This question leads us to further questions: about our own evolution policy. Some WG members would like to adopt a forward-compatibility policy similar to that of XSLT. Some would like to have two namespace names, with different polices for changing them.

On question 1, MSM suggested there are several policies we could follow:

  • every time anything changes in the spec, the namespace name changes (e.g. with datestamp)
  • every time anything changes in the schema for schemas or in the semantics of a construct, the namespace name changes
  • every time a change could invalidate existing schemas (when L2 is not a subset of L1)
  • every time a change would invalidate existing schemas
  • every time a change would lead a processor operating in compatibility mode to produce unacceptable (in our view) results (Possibly same as 'would invalidate'?)

On question 2 (compatibility policy), shall we introduce a policy similar to that in XSLT, or shall we not?

On question 3 (one NS name or two?), shall we or shall we not?

After discussion, a straw poll was taken, which showed that there was not consensus on these issues.

We did at least agree on one thing:

RESOLVED unanimously: to make the target namespace of the schema for schemas be http://www.w3.org/2000/07/xml-schema (or 08, or whatever month is appropriate) in our next non-CR Working Draft.

LC-74. name-urtype: Define an explicit name for the urType?

Issue Class: D Locus: structures Cluster: 31 urtype Status: ok
Assigned to: Paul Grosso, Noah Mendelsohn* Originator: Noah Mendelsohn

Description

Should XML Schema define a specific name for the urtype?

Interactions and Input

Input from Noah Mendelsohn:

Noah_Mendelsohn@lotus.com to XML Schema Comments list, Fri, 28 Apr 2000 19:24:14 -0400

I would like to raise a new issue for consideration in last call of XML schema. I think this request is based on new information, and I request that it be placed on our list for consideration.

As James Tauber has noted, we do not have an explicit name for the urType. The new information is that, during the design of the latest SOAP specification [1], we realized that even if the schema language itself can get by without a string name for the type, other systems have real need for such a name.

In a nutshell, SOAP has its own mechanisms for declaring array-like structures beyond those currently offered by schemas themselves. So, you will see SOAP elements labeled with attributes like:

SOAP-ENC:arrayType="xsd:int[3]"

which refers to an array encoded as three XML elements each of which is conformant with xsd:integer. Or:

SOAP-ENC:arrayType="yourNS:address[3]"

I happen not to be thrilled with that particular syntax, because I would prefer explicit markup and not to have QNames buried within a string, but neither of those is the issue here. The requirement is for some means of saying things like:

SOAP-ENC:arrayType="xsd:urType[3]"

to indicate an array of three elements each of which must be a (subtype of) our urType. As with our schema design, the intention is to allow both simple types and complex types in the instance, so it is truly is our notion of urType.

I believe that SOAP is not the only system that will emerge with such a requirement.

If we as a workgroup decide not to provide such a name for the type, then it is likely that SOAP will wind up defining something like SOAP-ENC:urType with an indication that it refers to the urType of XML schemas (indeed, that was supposed to make it into the SOAP 1.1 specification and didn't quite because the problem was noticed too late.) I think everyone involved believes that would be undesirable. So, the request is for an officially-blessed name for the urType. (Note: this is not a request to try to split into separate urTypes for simple and complex... just a name for what we have got.)

By the way, I think most ordinary mortals will find the term urType to be unduly obscure. Perhaps something like "xsd:base"? I'm sure we could amuse ourselves with a little name-the-urType contest. Thank you very much.

[1] http://www.ibm.com/software/developer/library/soap/soapv11.html

Input from Curt Arnold:

On this issue of urType, I think I would prefer an explicit declaration of an urType and the derivation of all types in a domain from it.

<!--  circular reference could indicate a urType   -->
<complexType name="urType" base="urType">
    <any minOccurs="0" maxOccurs="unbounded"/>
    <anyAttribute use="optional"/>
<complexType>

<!--  simpleType can inherit from complexType as long as complex type has
not
             required attributes or content.  Could restrict it further to
self references.  -->
<simpleType name="urSimpleType" base="urType"/>

<!--  this could replace content="empty" and serve as the
               basis for most derivations by extension  -->
<complexType name="empty" base="urType" derivedBy="restriction">
    <any maxOccurs="0"/>
    <anyAttribute use="prohibited"/>
</complexType>

My entry for the name the ur contest is root or rootType.

Actual Resolution

Discussed in call of 2000-06-29.

The WG discussed this issue, and distinguished four questions: Shall we provide a name for the urType? Shall we provide names for both the 'basic' urType and the 'urSimpleType'? If so, what names should be used? Should the schema for schemas provide definitions of these types?

RESOLVED: to provide names for both the 'basic' urType and the 'simple' urType. Dissenting: Biron

On the question of providing declarations, the WG was evenly divided among pro, con, and uncertain. This question should be discussed by email; we will come back to it in Friday's meeting and if we can reach a conclusion, we will; otherwise we will launch further email discussion and put the issue at the bottom of the schedule.

The question of names was discussed by email and in the face to face meeting of 1-2 August 2000.

A straw poll was taken on the various proposals. A head to head comparison of the top two candidate terms showed 14 in favor of anyType, 11 in favor of urType. For the basic simple type, anySimpleType was chosen without objection.

Commentator confirms that decision is OK.

LC-75. appinfo: Using appinfo annotations to store integrity constraints

Issue Class: A Locus: structures 4.3.10 Cluster: 09 appinfo Status: ok
Assigned to: Frank Olken Originator: David Vun Kannon

Description

Is it an appropriate use of appinfo annotations to use them to store aplication-specific integrity constraints (e.g. SQL CHECK constraints)?

Interactions and Input

Cf. XML Schema considered inadequately extensible

Cf. Provide guidance on extending schema for schemas?

Input from Vun Kannon, David:

"Vun Kannon, David" <dvunkannon@kpmg.com> to XML Schema Comments list, Mon, 1 May 2000 16:28:00 -0400

I am considering, as the subject line says, using appinfo annotations to store integrity constraints. Consider a document as the transfer syntax for a database predicate. An integrity constraint might be "no worker earns more than their supervisor" or "pay_rate > 0". These integrity constraints could be expressed as CHECK constraints in SQL, for instance.

I was considering trying to achieve the same effect with XSL-T templates in appinfo elements. Unfortunately, it appears that even in the April 7 draft, annotation and appinfo are poorly documented. Annotation is used but not defined in either the schema for schemas or DTD, and appinfo (and documentation) similarly. What is the content model ()+ supposed to mean, in sec 4.3.10?

Your comments appreciated on the appropriateness of the idea, and my understanding of appinfo.

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 01 May 2000 21:46:13 +0100

"Vun Kannon, David" <dvunkannon@kpmg.com> writes:

I am considering, as the subject line says, using appinfo annotations to store integrity constraints. Consider a document as the transfer syntax for a database predicate. An integrity constraint might be "no worker earns more than their supervisor" or "pay_rate > 0". These integrity constraints could be expressed as CHECK constraints in SQL, for instance.

That's exactly the sort of thing appinfo is designed for. Sorry the documentation is less complete in this area than it should be.

As the schema for schemas reveals, the content model for appinfo is constrained only in so far as it may not contain elements from the XML Schema namespace itself -- anything else, in any combination, is fine.

So declare a namespace at the top of your schema, and put whatever you like from that namespace inside appinfo. If you give your schema validator a schema for that namespace as well as the schema for schemas, the contents of appinfo from that namespace will get schema-validated as well.

Input from Vun Kannon, David:

"Vun Kannon, David" <dvunkannon@kpmg.com> to XML Schema Comments list, Wed, 3 May 2000 11:53:02 -0400

Got it.

Actual Resolution

Formal response. Commentator replies "I do consider Henry's explanation an adequate answer to my question. ".

LC-76. inherit: Defining inherited attribute values

Issue Class: A Locus: structures Cluster: 14 attldecl Status: silent
Assigned to: Rick Jelliffe* Originator: David Vun Kannon

Description

Should XML Schema add a mechanism to allow the schema author to define an attribute as having a value inherited from a specific attribute (e.g. one with the same name) on an enclosing attribute?

Interactions and Input

Input from Vun Kannon, David:

"Vun Kannon, David" <dvunkannon@kpmg.com> to XML Schema Comments list, Wed, 3 May 2000 11:53:02 -0400

I'm also thinking about appinfo for what I've taken to calling my "#IMPLIED resolution strategy". I want my schema to state explicitly what to do if a particular attribute is absent from an instance of an element for which that attribute is declared. For instance, the strategy that most of my attributes follow is:

ancestor-or-self::*[@implied-attribute][1]/@implied-attribute

which means that the attribute must exist somewhere among the containing elements. Choosing the nearest value gives this useful behavior that the attribute can be given a default, then the default overridden for any subtree.

Is this idea of "absent attribute resolution strategy" useful enough to all schemas that it should be part of XSchema itself, as opposed to hiding it under the appinfo bushel?

Input from Rick JELLIFFE:

Rick JELLIFFE <ricko@geotempo.com> to XML Schema Comments list, Thu, 04 May 2000 01:32:15 +0800

From: Vun Kannon, David (dvunkannon@kpmg.com) Is this idea of "absent attribute resolution strategy" useful enough to all schemas that it should be part of XSchema itself, as opposed to hiding it under the appinfo bushel?

Being able to declare that an attribute should have a value inherited from its parents (if that is the idea) was considered but not taken up. It would have been useful for xml:lang too. The line has to be drawn somewhere, of course (in the absense of some kind of extensible implied-attribute-value resolution framework).

LC-77. has-facet-ns: Namespace of has-facet, has-property

Issue Class: D Locus: datatypes Cluster: 17 sfs Status: silent
Assigned to: Paul Biron* Originator: Curt Arnold

Description

Should the has-facet and has-property elements of part2.xsd be placed outside the main XML Schema namespace (e.g. in order to allow them to occur within the appinfo element)?

Interactions and Input

Input from Henry Thompson:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Mon, 1 May 2000 23:48:22 -0500

hst wrote:

As the schema for schemas reveals, the content model for appinfo is constrained only in so far as it may not contain elements from the XML Schema namespace itself -- anything else, in any combination, is fine.

I was just thinking about this, the has-facet and has-property elements in part2.xsd should be outside of the XMLSchema namespace.

Actual Resolution

Discussed in call of 2000-06-30.

An answer of 'yes' is entailed by our decision on issue LC-122. This issue should be closed.

Formal response.

LC-78. schema-validation: Possible schema validation issue in 3.0b3

Issue Class: C Locus: both Cluster: 21 ns Status: silent
Assigned to: editor Originator: Alexander Falk

Description

Should types derived by the list constructor be defined as derivedBy="list" or as derivedBy="xsd:list"?

Interactions and Input

Cf. Proper home namespace/resource for built-in datatypes

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 02 May 2000 09:10:34 +0100

"Falk, Alexander" <falk@icon.at> writes:

Interesting question... I've looked at both the primer and the (normative) schema for schemas and DTD for schemas. The first seems to indicate that 'xsd:list' should be used, but the normative meta-schema and DTD clearly say that it should be 'list' all by itself.

Maybe someone else can shed some authoritative light on this: if the schema-namespace is defined with prefix xsd, and we have the following simpleType definition

<xsd:simpleType base="PermissionType" derivedBy="?????"/>

should the derivedBy be 'list' (like the meta-schema and DTD say), or should it be 'xsd:list' (like the primer says)?

My opinion is that the primer is the mistaken one here. The 'derivedBy' attribute has an enumerated type, with values 'extension', 'list' and 'restriction'. It's not a reference, which would have type QName.

Actual Resolution

Formal response to commentator.

LC-79. sfs-garbling: Stray data in Datatypes schema?

Issue Class: C Locus: datatypes A Cluster: sfs Status: silent
Assigned to: editor Originator: Dan Vint

Description

There appears to be stray data in the middle of the schema in Datatypes section A (an annotation element, two enumeration elements, and an orphaned end-tag for a simpleType element, betweeen the definitions of the complex types annotated and simpleType).

Interactions and Input

Input from Dan Vint:

Dan Vint <DVint@lexica.net> to XML Schema Comments list, Tue, 2 May 2000 07:56:33 -0700

I've been trying to use the schema as presented in Appendix A of Part 2 and have come across this piece of data that seems to be out of place or at least missing some more markup:

  <complexType name="annotated" base="openAttrs" derivedBy="extension" 
...

<!-- Error here!
   <annotation>
    <documentation>All the things which can occur in any of the
                   attributes controlling derivation or use of derived 
                   definitions</documentation>
    <documentation>A utility type, not for public use</documentation>
   </annotation>
   <enumeration value="list"/>
   <enumeration value="restriction"/>
  </simpleType>
-->

  <complexType name="simpleType" base="annotated" derivedBy="extension" 

...

Between the two complexType definitions is this annotation and simpleType that is broken.

Actual Resolution

Formal response to commentator.

LC-80. sfs-simple-base: Stray slash in declaration of base attribute for simple types?

Issue Class: C Locus: datatypes Cluster: sfs Status: silent
Assigned to: editor Originator: Dan Vint

Description

There appears to be a stray slash in the start-tag for the declaration of the base attribute within the declaration of the complext type named simpleType, in Datatypes section A. The start-tag looks like an empty-element tag, but the element is not empty.

Interactions and Input

Input from Dan Vint:

Dan Vint <DVint@lexica.net> to XML Schema Comments list, Tue, 2 May 2000 08:00:53 -0700

In the Appendix A (of part 2) the definition of this complexType has the attribute base as an empty tag, but the close tag appears later.

  <complexType name="simpleType" base="annotated" derivedBy="extension"
abstract="true">
    <element ref="facet" minOccurs="0" maxOccurs="unbounded"/>
    <attribute name="name" type="NCName">
      <annotation>
       <documentation>Can be restricted to required or
forbidden</documentation>
      </annotation>
    </attribute>
    <attribute name="base" type="QName" use="required"/>
     <simpleType base="NMTOKEN">
      <enumeration value="list"/>
      <enumeration value="restriction"/>
     </simpleType>
    </attribute>
  </complexType>

Actual Resolution

Formal response to commentator.

LC-81. sfs-files: Schema-for-schema files

Issue Class: C Locus: both Cluster: publication Status: silent
Assigned to: editor Originator: Dan Vint

Description

The separate DTD and XSD files which should be identical to the text given in the appendices of parts 1 and 2 appear not to be identical. What gives?

Interactions and Input

Cf. Where is xml.xsd?

Input from Dan Vint:

Dan Vint <DVint@lexica.net> to XML Schema Comments list, Tue, 2 May 2000 08:35:46 -0700

1) On the webpage http://www.w3.org/TR/xmlschema-1/ at the top are links to:

"with separate provision of the schema and DTD for schemas described herein. "

The thought was these would be the same as the Appendix versions of the schema and DTD, I beleive they are at least different versions. The relationship between these links and the later appendix information should be clarified and a clearer statement about these top level links should be made as well.

2) In the Appendix for part 1 and part 2, the SCCS ID variables show different names for the actual files than what appear to be the specified INCLUDE and DOCTYPE values for these files.

Actual Resolution

Formal response to commentator.

LC-82. extensibility: XML Schema considered inadequately extensible

Issue Class: A Locus: requirements Cluster: 09 appinfo Status: ok
Assigned to: Matt Fuchs, Jonathan Robie Originator: Robert Miller

Description

The current draft of XML Schema appears to have insufficient support for extensions to the language. This could be remedied by defining a syntax for associating active service packages with particular elements.

Interactions and Input

Cf. Using appinfo annotations to store integrity constraints

Cf. Provide guidance on extending schema for schemas?

Input from Robert Miller:

"Miller, Robert (GXS)" <Robert.Miller@gxs.ge.com> to XML Schema Comments list, Tue, 2 May 2000 15:43:11 -0400

I suppose my greatest concern is that the capabilities represented in the Schema work are not further extendible without also extending the Schema syntax. That's a steep hill for proposed new extensions to climb, and will likely act as a squelch on such extensions. As one who sees shortcomings in what is supported in the current Schema work, I find the closed Schema syntax disturbing.

...

Amid the complexity of the Schema specification is some much wished for capability, and I've been among those making wishes, as the DTD capability provides little of what is needed for Business Information Exchange. But as much as I want such capability, I fear that Schema is all we'll get, it won't be enough, and we'll have to pass it by for something better. That would be disheartening.

A design more in keeping with my desires for extensibility would define a syntax by which active service packages could be associated with XML elements. Edit constraints might be one such service, and one which might (and should) be pre-defined for use. The addition of new services would not require a change to the XML Schema syntax, it would simply require the definition of the new service and access to the process(es) supporting the extended service.

If a service approach were to be considered, some thought should be given to other services that might be desired (such as an array processing service), such that service syntactic support needs are adequately addressed in the underlying Schema syntax, even if the considered services are not fully defined and implemented.

Actual Resolution

Discussed in call of 2000-06-08.

The WG discussed this issue; some WG members argued that the particular mechanism proposed was probably NOT the best way to associate particular software handlers with elements in instances. The appinfo element, or stand-off annotation schemes (such as the Schema Adjunct Framework being defined by Extensibility) seem to do the job better. Others said that schemas should be more open than they are, but that the specific proposal here is not one they support.

RESOLVED without dissent: to make no change to the spec in response to this comment.

Formal response.

Followup.

Robert Miller replies (privately): "Actually, it's more like resigned than satisfied. However, ...

"From the responses I have received on each of my issues, I am satisfied that the WG did give serious consideration to these issues, and acted upon them in a fair and open manner. Finalization of the work of the WG on XML Schema is anxiously awaited by many organizations. I have been impressed with the degree of effort put into resolving the outstanding issues in a prompt and thorough manner, and I look forward to final publication. I'll close with a quote from Dave Torma, founding Chair of X12C Communications and Controls, upon the approval of a specification that was not all he had hoped for: 'It's ugly, but I can live with it.'

LC-83. semantics: Better support for semantics?

Issue Class: A Locus: both Cluster: 09 appinfo Status: ok
Assigned to: Jim Barnette Originator: Robert Miller

Description

XML Schema needs better support for semantics; in particular, the ability to link to a repository of semantic information about a particular object would be useful.

Interactions and Input

Input from Robert Miller:

"Miller, Robert (GXS)" <Robert.Miller@gxs.ge.com> to XML Schema Comments list, Tue, 2 May 2000 15:43:11 -0400

Perhaps the emphasis on `syntax' that underlies the XML DTD specification has too strongly influenced the efforts of people who recognized the limitations of DTD's. In my opinion, more attention needs to be paid to the semantics of information, and less to the syntax of information. There is little support for access to semantic information in the Schema work, where much work is needed.

The ebXML work with which I am a participant envisions repositories of semantic information. Certain of the semantic information in such repositories, such as value constraints, can be represented in the Schema syntax. But other important semantic attributes, (e.g.,a pointer to a repository of semantic information about an XML element), have no specific representation in the Schema.

Actual Resolution

Discussed in call of 2000-06-08.

Our requirements document does list linking to some specification of the semantics of an element type as a requirement; we thus agree with the commentator that linking to semantic repositories is a needed capability. The view of the WG is that the annotation scheme adopted at our Reston meeting (October/November 1999), and in particular the appinfo element, meets this requirement.

Formal response to commentator. Commentator agrees.

LC-84. arrays: Arrays?

Issue Class: A Locus: both Cluster: 15 arrays Status: nok
Assigned to: Frank Olken Originator: Robert Miller, MPEG-7

Description

Should XML Schema be modified to provide support for arrays?

Interactions and Input

Input from Robert Miller:

"Miller, Robert (GXS)" <Robert.Miller@gxs.ge.com> to XML Schema Comments list, Tue, 2 May 2000 15:43:11 -0400

Just today, I received an Email from someone who had seen my earlier Email to the Schema Work Group pointing out the need to support arrays of information. Spreadsheets, a simple array construct, are not provided a common representation in the XML Schema work.

...

If a service approach were to be considered (cf. issue XML Schema considered inadequately extensible), some thought should be given to other services that might be desired (such as an array processing service), such that service syntactic support needs are adequately addressed in the underlying Schema syntax, even if the considered services are not fully defined and implemented.

Input from :

1. Datatypes Issue MPEG-7 requires both arrays and matrices. We would prefer to have built-in array (1D) and matrix (2D, 3D) datatypes, instead of simply the 'derivedBy = list' mechanism.

If these cannot be provided then the alternative is to use lists. In the current WD, you can only create lists from atomic data types and since a list is not an atomic data type then you cannot create matrices using 'lists of lists' e.g.:

<simpleType name="ArrayOfInteger" base="integer" derivedBy="list"/>
   <length value="2"/>
</simpleType>

<simpleType name="MatrixOfInteger" base="ArrayOfInteger" derivedBy="list"/>
   <length value="4"/>
</simpleType>

Alternatively we can simply convert matrices to flattened lists which can be 1D, 2D or 3D and use a dim facet to lists to specify multi-dimensionality:

<simpleType name="MatrixOfInteger" base="ArrayOfInteger"/>
   <dim value="2 4"/>
</simpleType>

Actual Resolution

Formal response to commentator.

Don Brutzman of X3D confirms this is something of a problem for them.

Bob Miller replies "I do not consider XML Schema 1.0 'good enough' on this topic", but adds that he does not want to 'stop the presses' to add arrays to XML Schema 1.0.

LC-85. fixed-default: 4.3.1: second scenario: should value constraint default to FIXED?

Issue Class: C Locus: structures 4.3.1 Cluster: 14 attldecl Status: silent
Assigned to: editor Originator: James Tauber

Description

Is a co-occurrence constraint missing in the second scenario of Structures 4.3.1 (where 'ref' is absent and 'schema' is not the parent)?

Interactions and Input

Input from James Tauber:

James Tauber <JTauber@bowstreet.com> to XML Schema Comments list, Tue, 2 May 2000 21:09:11 -0400

In 4.3.1, in the second scenario (where ref is absent and schema is not the parent) the value of {value constraint} is given as "fixed" if the "use" attribute is not "default".

In other words, if a value is given, but the use attribute is one of "optional", "fixed" or "required", the value constraint is taken to be "fixed".

Is this correct?

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 03 May 2000 09:26:50 +0100

There's a co-occurrence constraint missing, you're right. There should be something under Attribute Declaration Representation OK which says "if 'value' is present, then 'use' must be "default", "fixed" or "required".

Actual Resolution

Formal response to commentator.

LC-86. optionality: Optional component != mandatory but absent?

Issue Class: C Locus: structures 3 Cluster: 21 ns Status: silent
Assigned to: editor Originator: Peter Canning

Description

What is the difference between an optional property (e.g. {min occurs}) and a mandatory property whose legal values may include "absent" (e.g. {target namespace})?

Interactions and Input

Input from Peter Canning:

Peter Canning <canning@vitria.com> to XML Schema Comments list, Tue, 02 May 2000 20:31:45 -0700

The structure specification identifies some schema component properties (e.g. the "min occurs" property in the "Attribute Declaration" component) as optional and states (section 3 paragraph 1) that optional properties that are missing have "absent" as their value. It also describes some properties (e.g. the "target namespace" property in the "Attribute Declaration" component) as mandatory, but includes "absent" in the list of legal values.

What is the difference between an optional property, and a mandatory property whose value can be "absent"?

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 03 May 2000 09:34:30 +0100

Peter Canning <canning@vitria.com> writes:

Good question. I think (leaving aside the question of what happens when a required property is absent without leave because of a failed reference) that {target namespace} is the only such property, and we should revisit the nomenclature here. There was a change in terminology in this area very late in the publication process, and some more work needs to be done.

The intended distinction is that {target namespace} is always relevant, it value always significant, even when it is the 'absent' value == no namespace. For e.g. {min occurs}, there are circumstances, e.g. for top-level attribute declarations, where the property is irrelevant, the value never looked at and hence not supplied.

Actual Resolution

Formal response to commentator.

LC-87. xsi-null-value: Value space for xsi:null attribute

Issue Class: C Locus: primer 2.3 Cluster: xsinull Status: silent
Assigned to: editor Originator: Curt Arnold

Description

Should the xsi:null attribute be changed so that it accepts the values 0 and 1 as well as the values true and false?

Interactions and Input

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Tue, 2 May 2000 22:33:01 -0500

Section 2.3

Among these, the enumeration facet is one of the most useful and it can be constrain the values of almost simple type, except the boolean type.

Why not the boolean type? xsi:null appears to use an enumerated boolean (allowing true but not 1). Anyway, I believe that xsl:null should accept false, 0, true and 1. With only true and 1 signifying null content.

Actual Resolution

Formal response to commentator.

LC-88. complex-lists: Limits on lists

Issue Class: C Locus: primer 2.3 Cluster: 03 constructors Status: silent
Assigned to: editor Originator: Curt Arnold

Description

Should the Primer point out that lists cannot be derived from complex or list types?

Interactions and Input

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Tue, 2 May 2000 22:33:01 -0500

Section 2.3

(you cannot create lists from complex types).

For the narrative, I think it is probably more appropriate that you mention lists can't be derived from other list types.

Actual Resolution

Formal response to commentator.

LC-89. undeclared-ns: Undeclared and unnamed namespaces

Issue Class: A Locus: primer 3.4 Cluster: 19 modules Status: unassigned
Assigned to: Henry Thompson Originator: Curt Arnold

Description

Should XML Schema be changed to revise the method of binding schema components to the namespace without a name and using them to validate unqualified elements in a document? (E.g. to specify that every schema document must specify a target namespace, and that the unqualified elements in a document instance are bound to a namespace at validation time, using a modification of the noNamespaceSchemaLocation mechanism.)

Interactions and Input

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Tue, 2 May 2000 22:33:01 -0500

3.4 Undeclared target namespaces

I have a problem with this. If you are going to the point of defining a schema, these elements and attributes are in a conceptual namespace whether or not you give it a name. The way targetNamespace is defined, I cannot write one schema that could be used to validate a XML 1.0 sans namespace document and also used in a to validate a document with namespace support. I can't even use include since the targetNamespaces wouldn't match.

What I would recommend is that targetNamespace be required for schema definition. However, the XML 1.0 binding mechanism could specify both a validation namespace and schema location. The noNamespaceSchemaLocation could be a list of two URI's with the first being the validation namespace and the second being the schema location.

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 03 May 2000 09:29:50 +0100

Curt Arnold <carnold@houston.rr.com> writes:

... The way targetNamespace is defined, I cannot > write one schema that could be used to validate a XML 1.0 sans namespace > document and also used in a to validate a document with namespace support.

That's precisely what you can do. Write the schema with no targetNS, it can be used as is for no-namespace documents, and included into schemas with a targetNS and thereby appropriated for use with that target.

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Wed, 3 May 2000 09:39:09 -0500

Primer Section 4.1 said:

The one import caveat to using the include is that the target namespace of the included constructions must be the same as the target namespace of the including schema... Maybe this is imprecise and Section 1 allows the included target namespace to be blank.

However, even if you could use the include to achieve reuse, it is still a bad thing to have to publish two near-identical schemas, one for use in XML 1.0 sans Namespace usage and one for namespace aware usage. This is really a distinction in usage and should be addressed in the binding of a schema with a document and not in the schema itself.

For example, you would have to have two schemas for XHTML. Both would truely be using names within the context of the http://www.w3.org/1999/XHTML (whatever the true namespace is), but one would be for XML 1.0 compatible documents and one for XML 1.0+namespaces. This is just not good.

However, simply moving the statement of which namespace to match with unnamespace qualified elements to the binding of the document and schema allows you to use one schema for both XML 1.0 and XML+Namespaces usages.

Input from Curt Arnold <carnold@houston.rr.com>:

"Curt Arnold" <carnold@houston.rr.com> to XML Schema Comments list (and xml-dev) on Thu, 11 May 2000 01:19:19 -0500

Note on defaultNamespace:

A previous comment (http://lists.w3.org/Archives/Public/www-xml-schema-comments/2000AprJun/0124.html) discussed Section 3.4 on Undeclared target namespaces. The current treatment would require one schema for XHTML, for example, for documents where the namespace was declared and another schema for XHTML where the namespace was not declared. To me, it seems that the creation of a schema implies that you are defining elements that are in a conceptual namespace and that the additional burden of picking out a URI for this namespace is minimal. If a instance document doesn't want to use an xmlns attribute, that is a usage issue that could be addressed by a xsi:defaultNamespace attribute (or schema PI) that provides a weaker binding of unqualified names to a namespace that is only used for schema validation.

LC-90. mixed-extension: Extension of mixed types

Issue Class: D Locus: primer 4.2 Cluster: 12 content-models Status: resolved
Assigned to: David Fallside* Originator: Curt Arnold

Description

Should the model of extension-by-suffixation now supported by XML Schema be revised (e.g. with a view toward achieving simpler behavior when the base type has mixed content)?

Interactions and Input

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Tue, 2 May 2000 22:33:01 -0500

4.2 Deriving Types by Extension

Furthermore, the two content models are treated as two children of a sequential group.

I actually prefer this behavior, but it might be out of synch with our recent discussion about behavior when the base type has content model mixed.

Actual Resolution

Discussed in call of 2000-06-22.

Since this issue was raised by the commentator only as a hypothetical change made logical by the suggestion of LC-51, and since we had not adopted the suggestion of LC-51, the WG felt there was no need to adopt the implicit suggestion in this issue. RESOLVED without dissent: to retain the current suffixation rule for extending types, whether mixed or element-only.

LC-91. character-entities: Support declaration of character entities?

Issue Class: D Locus: structures Cluster: 31 entities Status: silent
Assigned to: Don Mullen* Originator: Steven Pemberton

Description

Should XML Schema be extended to support the declaration of general entities (or at least of entities which represent special characters, e.g. eacute)? N.B. character entities are named entities; they are distinct from numeric character references.

Interactions and Input

Cf. Entities

Input from Steven Pemberton:

"Steven Pemberton" <steven.pemberton@cwi.nl> to XML Schema Comments list, Wed, 3 May 2000 15:17:30 +0200

The HTML WG has requested me to relay to you a request that XML Schemas include a facility to define at least character entities (such as é).

While we recognise that the full entity mechanism might be a burden, HTML markup typically contains a lot of character entities, and we would like to be able to define them when using schemas without having to fall back to a DTD subset.

Input from Dan Connolly:

Dan Connolly <connolly@w3.org> to XML Schema Comments list, Fri, 05 May 2000 08:44:04 -0500

Steven Pemberton wrote: The HTML WG has requested me to relay to you a request that XML Schemas include a facility to define at least character entities (such as &eacute;).

We tried that before, but it didn't work out well; we weren't sure we liked it, but we put the idea out for review, and the feedback was overwhelmingly negative:

"The provision within XML Schema: Structures of a mechanism for defining parsed entities presents problems for the relationship between schema-validity and XML 1.0 well-formedness, since references to entities defined only in a schema are undefined from the XML 1.0 perspective. Strictly speaking, a well-formed XML document may contain references to undefined entities only if it is declared as standalone='no' and contains either an external subset or one or more references to external parameter entities in their internal subset. We get around this by [Definition: ] defining a nearly well-formed XML document to be one which either is well-formed per XML 1.0, or which fails to be well-formed only because of undefined general entity references, but which would be well-formed if it were standalone='no' and identified an external subset. We consider this justified on the grounds that the use of a namespace declaration which refers to a schema functions rather as an external subset, and from the XML 1.0 perspective such a reference almost of necessity renders the document non-standalone when schema-validation is applied."

-- http://www.w3.org/1999/05/06-xmlschema-1/#conformance-schemaValidity

If you can think of a less awkward way to do it, let us know.

Otherwise, I think it's most likely that the WG will decline your request.

If you find this explanation to be satisfactory justification for us to decline your request, please let us know by withdrawing your request.

While we recognise that the full entity mechanism might be a burden, HTML markup typically contains a lot of character entities, and we would like to be able to define them when using schemas without having to fall back to a DTD subset.

I'm afraid that's about the only way I can see to make it work.

Another option is to use <eacute/> instead of &eacute;, but that requires application-level support rather than being handled by the XML processor, and it won't work in attribute value literals.

Actual Resolution

Discussed in call of 2000-06-08.

Alternatives:

  • specify entities in an entity-only DTD
  • use markup

Proposal to provide detailed guidance on instruction on these alternatives. Instruct the editor of Primer to do so. WITHOUT OBJECTION.

Question: Is there a future solution with a change to XML 1.0? Answer: Not trivially. Follow-up: But should we take action on ourselves to forward request to XML core that they address this issue? Shall we suggest to the CG that this go on a list of candidate requirements for XML 2.0? Agreed by majority vote to instruct chairs to take this issue to the XML CG for consideration as a possible candidate requirement for XML 2.0.

Formal response to commentator. HTML WG dissents:

The HTML working group has instructed me to forward their dissent from your WG's decision, and to ask you to send the issue for review by the director.

The group is unhappy with the idea that a user agent would have to be able to process schemas as well as DTD fragments, when an aim of schemas was to replace DTDs.

LC-92. dynamic-gi: Dynamic element name specification.

Issue Class: A Locus: structures Cluster: 19 modules Status: silent
Assigned to: Mary Holstege Originator: Dr. Ardeshir Bahreininejad

Description

How can XML Schema be used to support dynamic element-type naming?

Interactions and Input

Input from Dr. Ardeshir Bahreininejad:

"Dr. Ardeshir Bahreininejad" <bahreininejad@yahoo.com> to XML Schema Comments list, Wed, 3 May 2000 07:57:59 -0700 (PDT)

I wish to define an element in a schema document where the "name" of the element is not known. Let's say, the name of the element may be decided by other parties using the schema for example:

<element name="Cat"/>
<element name="Dog"/> 
<element name="????"/> 

where a different user may decide on the ????. How do we define such dynamic name allocation?

Actual Resolution

Formal response.

LC-93. union-types: Disjoint datatypes?

Issue Class: D Locus: datatypes Cluster: 23 constructors Status: ok
Assigned to: Ashok Malhotra Originator: David Vun Kannon

Description

Should XML Schema be modified to allow the creation of union types? (Or, less strongly, enumerated types whose value spaces are the unions of the value spaces of their base types, with the base types required to have disjoint value spaces.)

Interactions and Input

Cf. Conjunction types?

Input from David Vun Kannon:

"Vun Kannon, David" <dvunkannon@kpmg.com> to XML Schema Comments list, Wed, 3 May 2000 12:04:24 -0400

Can I build a datatype out of pieces that are disjoint? A simple example might be US_states + Canadian_provinces. Say my schema already contains declarations of these two enumerations. The new enumeration I want is the merger of the two. I don't want to extend one with the members of the other, explicitly written out.

A more complex case is SQL style datatypes: integer + NULL. Can I build such a datatype in XSchema?

Input from Ashok Malhotra:

petsa@us.ibm.com to XML Schema Comments list, Wed, 3 May 2000 13:12:49 -0400

No, sorry, not in version 1.

You cannot create a type out of the union of disjoint types, say, integer and string.

You also cannot union two separately declared enumerations.

Proposed Resolution

Discussed at Edinburgh ftf.

This appears to be a narrowing of issue LC-2 which the task force will look at.

Formal response to commentator. David Vun Kannon replies that this looks satisfactory at first blush.

LC-94. help: Clarify Structures 5.11 Complex Type Definition Constraints - Type Derivation OK

Issue Class: A Locus: structures 5.11 Cluster: 07 typedecl Status: silent
Assigned to: Henry Thompson* Originator: Asir S Vedamuthu

Description

Can the rules defining the Constraint on Schemas "Type Derivation OK (Complex)" be clarified?

Interactions and Input

Input from Asir S Vedamuthu:

"Asir S Vedamuthu" <asirv@webmethods.com> to XML Schema Comments list, Thu, 4 May 2000 09:59:09 -0400

I am having a hard time to understand - how to evaluate 'The item type definition is validly derived from the {type definition}'. And, here is the text from the spec, http://www.w3.org/TR/xmlschema-1/#coss-ct

"Constraint on Schemas: Type Derivation OK (Complex)

A complex type definition (call it D, for derived) is validly derived from a type definition (call this B, for base) given a subset of {extension, restriction} if:

  • 1.1 The {derivation method} of D is not in the subset, or in the {final} of its {base type definition};
  • 1.2 Either
  • 1.2.1 They are the same type definition; or
  • 1.2.2 B is the {base type definition} or
  • 1.2.3 the {base type definition} is not the ur-type definition and is validly derived from B given the subset as defined by this constraint (if the {base type definition} is complex) or validly derived from B given the subset unioned with {list} as defined in Type Derivation OK (Simple) (§5.12) (if the {base type definition} is simple)."

Please help me understand (maybe an example) & I greatly appreciate your help.

Formal response to commentator.

LC-95. xml-lang: Use of xml:lang

Issue Class: A Locus: structures Cluster: 19 modules Status: silent
Assigned to: Sperberg-McQueen Originator: Jane Hunter

Description

Does xml:lang need to be declared / imported like any other attribute? If so, where is the xml namespace?

Interactions and Input

Input from Jane Hunter:

Jane Hunter <jane@dstc.edu.au> to XML Schema Comments list, Fri, 05 May 2000 09:54:28 +1000

We're using XML Schema within MPEG-7 to define descriptions of audiovisual content. Certain descriptive elements have a language attribute. For consistency, we'd like to use the xml:lang attribute.

Does this need to be declared like any other attribute for the elements to which it applies? For example:

<complexType name="FrameAnnotation">
     <element name="Who" type="string" minOccurs="0"/>
     <element name="What" type="string" minOccurs="0"/>
....
     <attribute ref="xml:lang"/>
</complexType>

I assume that we also need to import the xml namespace? If so, where is this located?

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 05 May 2000 09:07:59 +0100

There is an example of this in the schema for schemas [1] itself, which also uses xml:lang.

Short answer, it's at the XML namespace URI, i.e. http://www.w3.org/XML/1998/namespace

Actual Resolution

Formal response to commentator.

LC-96. equivclass: equivClass: common ancestor type

Issue Class: D Locus: structures 2.2.2.2 Cluster: 10 openness Status: silent
Assigned to: Henry Thompson, Ugo Corda* Originator: Curt Arnold

Description

Should the structures spec be modified by dropping the rule that all element types in an equivalence class must be declared as having types which are derived from the type of the exemplar of the equivalence class?

Interactions and Input

Input from Curt Arnold:

Curt Arnold <carnold@houston.rr.com> to XML Schema Comments list, Fri, 5 May 2000 00:05:30 -0500

Section 2.2.2.2

All such members must have type definitions which are either the same as the exemplar's type definition or restrictions or extensions of it. Therefore, although the names of elements can vary widely as new namespaces and members of the equivalence class are defined, the content of member elements is strictly limited according to the type definition of the equivalence class exemplar

This implies that the justification for the constraint is somehow related to simplification of validation because content is strictly limited....

However, this "limitation" is circumventable by creating an abstract examplar with a minimal type such as empty.

<complexType name="empty"/>

<element name="resourceDefRef" abstract="true" type="empty"/>

<element name="resource" equivClass ="resourceDefRef">
    <complexType base="empty" content="mixed">
            <any maxOccurs="unbounded" minOccurs="0"/>
    </complexType>
</element>

<elementType name="resourceRef" equivClasss="resourceDefRef">
    <complexType base="empty">
        <attribute name="href" type="uriReference"/>
    </complexType>
</elementType>

By which we have created an equivClass with two members that are about as structurally dissimilar as possible. I think it is a good thing to be able to do that since it should be common, as in this example, that logically equivalent things have radically different XML representation.

But then why go through the hoops of manufacturing a common ancestor type? I have a guess that it is so that final='restriction' or final='extension' makes sense, but that I think that is putting the cart before the horse.

Like the concept of interfaces in OOP, equivClass's reason for being is to allow structurally dissimilar but conceptually similar items to be substitutable. Interfaces do not make any demands on the structure of the implementing class and one class may support many interfaces.

I would strongly recommend that:

  • a) the restriction on equivClass members having a common ancestor type be removed.
  • b) that the final attribute of <element> be a boolean. A value of true would inhibit the use of the element as an exemplar.
  • c) that the equivClass attribute of <element> become a list of QNames.

I believe this would simplify schema authoring by eliminating the manufacturing of common ancestor classes, would simplify schema validation by eliminating the need to ensure common ancestor classes and would be consistent with the use of interfaces in OOP.

Actual Resolution

Discussed in call of 2000-06-08.

The WG discussed the current rule that all members of an equivalence class (or 'substitution class', as the chair suggested calling it instead) must have types derived from the exemplar of the class. In favor of retaining it, WG members noted that

  • when schema authors extend anything, it is useful if they specify the invariant which governs the class; this is conveniently captured by specifying the type of the exemplar
  • if the invariant is simply 'all members of the class must be elements', then the schema author can assign the urtype to the exemplar -- so the rule does no harm to those who do not need it, and does good to all by ensuring that the schema is relatively explicit about the invariants

The WG also observed in passing that in some cases, eliminating the rule might make it easier to mix in new element types (e.g. when internationalizing a schema) -- the set of cases affected seemed too limited to be compelling.

RESOLVED without dissent: to retain the status quo in this area.

Formal response to commentator.

LC-97. hexadecimal: Allow hex notation for integers?

Issue Class: D Locus: datatypes Cluster: 04 numeric Status: silent
Assigned to: Frank Olken Originator: Doug Ransom

Description

Should hexadecimal notation be allowed for numbers (at least for integer and non-negative integer)?

Interactions and Input

Cf. Allow multiple lexical spaces for floats?

Input from Doug Ransom:

Doug Ransom <Doug_Ransom@pml.com> to XML Schema Comments list, Fri, 5 May 2000 11:53:52 -0700

I think would be very unfortunate if Integer and NonNegative integer could not have hex lexical structure. i.e. 0xffaa00bb instead of 4289331387.

Binary is really inapprpriate for this -- people often want to represent numbers as hex (i..e HTML colours).

Actual Resolution

Discussed at Edinburgh ftf.

The general tide of comments has run against allowing multiple lexical forms for the same type, even to the point that some comments criticize the decision to allow leading zeroes for integers. So the WG believes this would not be a wise change.

In discussions of issue LC-21, a proposal have been made for a built-in abstract type corresponding to each of the major existing built-in types, to allow derivation of types which share a value space with the existing built-in type but use a different lexical form. If we adopt that proposal as a general thing, then schema authors could specify hex notation for integers, though schema processors would not be required to understand the mapping from lexical form to value.

Formal response to commentator.

LC-98. ns-and-schemaloc: Clarifying schema location and namespace

Issue Class: A Locus: structures Cluster: 19 modules Status: silent
Assigned to: David Ezell* Originator: gmacri@libero.it

Description

How does a system know which schema to search for a declaration of an element in a particular namespace?

Interactions and Input

Input from gmacri@libero.it:

"gmacri@libero.it"<gmacri@libero.it> to XML Schema Comments list, Sat, 6 May 2000 14:20:01 +0200

In this example there are three declarations of namespace and two declaration of schemalocation that are independent.

<Library 
  xmlns:book  ="http://www.somewhere.org/Book" 
  xmlns:person="http://www.somewhere-else.org/Person" 
  xmlns:xsi   ="http://www.w3.org/1999/XMLSchema/instance" 
  xsi:schemaLocation="http://www.somewhere.org/Examples 
    http://www.somewhere.org/Examples/Book.xsd 
    http://www.somewhere-else.org/Person 
    http://www.somewhere-else.org/Person/Person.xsd">
 <BookCatalogue>
  <book:Book>
  <book:Title>Illusions The Adventures of a Reluctant 
    Messiah</book:Title> 
  <book:Author>Richard Bach</book:Author> 
  <book:Date>1977</book:Date> 
  <book:ISBN>0-440-34319-4</book:ISBN> 
  <book:Publisher>Dell Publishing Co.</book:Publisher> 
  </book:Book>

When I analyze this document with an application (automatically), how I can understand that, for example, for "Book" element I must search it in the schema "Book.xsd" and not in "Person.xsd", to verify the validity of this document?

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 08 May 2000 08:58:58 +0100

The above document is just fine even if it doesn't in itself provide the answer to your question for a processor. The <Book> element is in the {http://www.somewhere.org/Book} namespace, for which no schema document is identified explicitly in the value of xsi:schemaLocation. That doesn't mean the document is not schema valid. Note also that the document element (<Library>) is not in any namespace, and no schema is provided explicitly (with xsi:noNamespaceSchemaLocation) for that element either.

But there are at least two other ways schema components for these elements might be found:

  1. The schema documents http://www.somewhere.org/Examples/Book.xsd and http://www.somewhere-else.org/Person/Person.xsd might <import> schemas with appropriate target namespaces (that is, http://www.somewhere.org/Book and none, for <Book> and <Library> respectively);
  2. The user who invokes schema validation may supply such schemas, either in the form of schema documents, or in some application-specific built-in form.

Actual Resolution

Formal response to commentator.

LC-99. xpath-query: XPath expressions in key definitions

Issue Class: A Locus: structures Cluster: 20 keys Status: silent
Assigned to: Jonathan Robie* Originator: gmacri@libero.it

Description

Can a key contain fields which lie outside the element identified by the selector?

Interactions and Input

Input from gmacri@libero.it:

"gmacri@libero.it"<gmacri@libero.it> to XML Schema Comments list, Mon, 8 May 2000 14:24:33 +0200

In this example there is a definition of a key:

<xs:element name="car">
   <xs:complexType model="empty">
    . . .
    <xs:attribute name="regRef" type="dt:integer"/>
    <xs:attribute name="regState" type="twoLetterCode"/>
   </xs:complexType>
  </xs:element>
 </xs:complexType>

 <xs:key name="carRef" >
  <xs:selector>.//car[@regRef]</xs:selector>
   <xs:field>@regRef</xs:field>
   <xs:field>@regState</xs:field>
 </xs:keyref>
</xs:element>

If I want to define a key similar to the key defined above, can I use as content of <field> a name of element that is not a descendant of "car" but is a name of an element that is, for instance, the child of an ancestor of car?

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list, 08 May 2000 14:52:50 +0100

Yes. As the spec. says [1], the things picked out by <field> are not constrained to lie within the element picked out by <selector>, and no other constraint as to locality is imposed.

[1] http://www.w3.org/TR/xmlschema-1/#Identity-constraint_Definition_details

LC-100. particles: Suggested rewording in '3.8 Particle Details'

Issue Class: C Locus: structures 3.8 Cluster: ed-str Status: silent
Assigned to: editor Originator: Michael K Smith

Description

Should the wording in Structures 3.8 be changed for clarity?

Interactions and Input

Input from Michael K Smith:

"Smith, Michael K" <michael.smith@eds.com> to XML Schema Comments list, Mon, 8 May 2000 13:59:09 -0500

In '3.8 Particle Details':

The 'either' preceding paragraphs 1.1.1 through 1.1.3 (see below) and 1.2 is confusing. It initiallly appears that 1.1.1 through 1.1.3 are modified by the 'either', while upon further reading they must be joined by an implicit 'and' and the 'either' relates the implicit 1.1 to 1.2. I don't know what the best solution to this might be, perhaps parenthesis or an explict 1.1 with an 'and' conjoining its children. Perhaps your notational introduction explained this, but I didn't see it.

A sequence (possibly empty) of element information items is schema-valid with respect to a particle if either

1.1.1 The length of the sequence is greater than or equal to the {min occurs};

1.1.2 If {max occurs} is a number, the length of the sequence is less than or equal to the {max occurs};

One aspect of this separation of 1.1.1 and 1.1.2 that seems less than optimal is that it makes it easy to define a schema that cannot be satisfied. E.g. minOccurs = 2 and maxOccurs = 1. (Such schemas might be generated mechanically, say from database entries.) Whereas if 1.1.1 and 1.1.2 were combined we could at least have a schema that could be satisfied by instances that did not contain the excluded element.

1.1.1 Let range = [{min occurs}...{max occurs}]. If range is empty then the sequence must be empty, otherwise the length of the sequence must be contained in the range.

Actual Resolution

Formal response to commentator.

LC-101. wildcard: Help on Wildcard

Issue Class: A Locus: structures Cluster: 14 attldecl Status: silent
Assigned to: Chuck Campbell Originator: achille@us.ibm.com

Description

How does a schema author indicate that a complex type can have any namespace-qualified attribute, regardless of the namespace?

Interactions and Input

Input from achille@us.ibm.com:

In section 3.9, it is explained that: "the {namespace constraint} property (for a wildcard) provides for validation of elements that: 3. (not and absent} are namespace qualified."

I assume that it is also true for attribute wildcard. I look at the XML representation of Wildcard and it does not seem obvious how to express something like " any attribute with qualified namespace". Maybe the XML representation of wildcard should allow something like <any namespace="##qualified"/> (and for Attribute wildcard <anyAttribute namespace="##qualified"/>) which will correspond to the {namespace constraint} = (not and absent).

Actual Resolution

Formal response.

LC-102. microparsing: Suggestion: Microparsing support in XML Schema

Issue Class: D Locus: both Cluster: 03 constructors Status: nok
Assigned to: David Ezell Originator: Anders W. Tell

Description

Should XML Schema be modified to allow the definition of abstract information models, together with rules for encoding the information either as elements or as strings (for use as attribute values)?

Interactions and Input

Cf. Allow record-style simple types?

Input from Anders W. Tell:

Anders W. Tell (<anderst@toolsmiths.se>) to WWW XML Schema Comment list on Wed, 10 May 2000 09:47:27 +0200

Problem:

A common phenomena which now and then surfaces in the markup world is the occurrence of what some authors call "Micro-parsing". This is the situation when Schema writers define that a XML attribute should contain structured information and therefore creates a need for customized parsers, hence the above term.

Two examples are

  • XPath expression in XSL: match="/cars/car[@name='volvo']"
  • Path in SVG: <path d="M 100 100 L 140 100 L 120 140 z"/>

Is this not a paradox? A markup language which cannot be used for markup anymore? Of course all markup languages have a limit and maybe XML's limit have been reached.

Why:

What are the reasons for encoding complex information in a single attribute ?

The reason I have seen are sofar are:

  • compression, produces smaller XML streams (SVG paths,...)
  • usage of attribute strings for readability (XPath expressions.,,,)
  • usage of attribute strings for compactness (XPath expressions,...)
  • ...

The following suggestions is an attempt to "internalize" these encoding scenarios, to capture as much as possible of the encoding information inside XML Schemas instead of relying on externally created and managed documentation.

Another side effect of the proposal is that it's now possible to have DOM access to structured attributes as if they were XML element encoded.

For Grove enthusiasts it is also possible to view (with a little effort ;)) attributes as hierarchical nodes.

So here goes...

Solution:

First a few initial short definitions:

Encoding "Stereotype" <=> something that should be encoded, is defined by a information model which may be defined in terms of one or more information items (nodes/properties,...).

Encoding "Form" <=> principles for how nodes/properties in an Stereotype's information model must be encoded as a strings or XML elements. (the following suggestion implies two forms, one for attribute encoding and one for XML element encoding)

"Attribute-Micro-Parser" <=> A software artifact which encodes and decodes XML attribute strings to/from XML elements.

  • Add new XML Schema data type which represents "MicroParsed" attribute values. Make it a subtype of "string" with all its facets. Schema writers can now derive their own MicroParsed data types, one for each stereotype they want to encode as attribute.
  • In this new data type add a reference to a complexType. This referenced schema defines how to encode the contents (information model) of the attribute string ("attribute form") as an XML element tree ("element form"). Note: Maybe this reference should be a new facet for the string data type. Note: With this design it is possible to encode the same stereotype as either XML attribute string or XML element tree in documents.
  • In this new data type add a reference to the attribute's "form specification", i.e. where to find more information on how to construct attribute strings from the underlying information model.
  • All available information in the stereotypes information model must be encoded in the "element form" and the information encoded in the "attribute form" must be a "subset" of the information encoded in the element form's encoding (similar to applying a grove plan before encoding as attribute). The "element form" is considered a "complete" encoding form (contains all information in the information model).
  • Information set: Add an extra optional property to attribute information item. property: "parsed" sequence<element-info-item[zero or one]>
  • Recommend that all Schema authors first create an information model for the stereotype then create encoding "form"s for the primary XML element encoding form and last the corresponding XML attribute strings form.
  • DOM framework: Create a new software artifact called "DOMAttributeMicroParser"
interface DOMAttributeMicroParser {
    readonly  attribute string  name;
    readonly  attribute string  namespace;

    /* parse attribute string and create the corresponding element tree */
    long      parse(in DOMAttribute from, out DOMElement to);

    /* Traverse the element tree and create corresponding attribute
       string expression */
    long      construct(in DOMElement from, out DOMAttribute to);
};
  • DOM framework [Optional]: Create a subclass to DOM Attribute called "DOMParsedAttribute"
interface DOMParsedAttribute : DOMAttribute {
     attribute DOMElement  fParsed;  /* parsed attribute */
};

Actual Resolution

Discussed at Edinburgh ftf.

The consensus of the Working Group is that this would not be a wise change to the language. It amounts to an invitation to reinvent the SGML features DATATAG and SHORTREF features. It is our conviction that XML is a useful language for structured information, and if it is desired to make the internal structure of information explicit, XML may usefully be applied to the problem.

There is also no clear upper boundary on the complexity to be required of a microparser: if it can handle simple patterns, then why not regular languages? If it can handle regular languages, then why not context-free languages?

Formal response to commentator (originally sent 12 July 2000). Commentator not persuaded. Followup.

LC-103. duration-restricting: Restricting Facets

Issue Class: A Locus: datatypes Cluster: 01 facets Status: unassigned
Assigned to: Lew Shannon Originator: Michael Anderson

Description

Can a schema author constrain values of the time-duration type to be measured only or at most in days? (E.g. by using the pattern facet?) Also: must all values which match the pattern facet be members of the value space of the base type?

Interactions and Input

Input from Michael Anderson <michael@research.canon.com.au>:

Michael Anderson <michael@research.canon.com.au> to XML Schema Comments list (and xml-dev) on Wed, 10 May 2000 11:01:32 +1000

Is it possible to define a new simple type to constrain the pattern of a time duration so that duration can at most be measured in days. For instance,

  <xsd:simpleType name="MyTimeDuration"
                  base="xsd:timeDuration">
      <xsd:pattern
       value="-?P(\d+D)?(T(\d+H)?(\d+M)?(\d+(\.\d+)?S)?)?" />
  </xsd:simpleType>

According to the XML Schema working drafts, the pattern facet is allowed for timeDuration. My interpretation is that any pattern facet, once specified for a subtype of the timeDuration type, can further restrict the format of timeDuration provided that it is still of a valid timeDuration format. Is this correct? Furthermore does the parser need to check this? ie check that the pattern of MyTimeDuration is indeed still a valid pattern for timeDuration.

Cheers, Michael.

LC-104. XML-Signature: XML Signature WG's review of XML Schema

Issue Class: A Locus: both Cluster: requirements Status: ok
Assigned to: Sperberg-McQueen Originator: Joseph M. Reagle Jr.

Description

The XML Schema language suffices to meet the requirements of XML Signature. In particular, the content types (mixed, empty, elementOnly, textOnly) and the wildcard facility are useful.

Interactions and Input

Input from Joseph M. Reagle Jr. <reagle@w3.org>:

"Joseph M. Reagle Jr." <reagle@w3.org> to XML Schema Comments list on Wed, 10 May 2000 12:48:18 -0400

http://www.w3.org/Signature/2000/05/03-schema-review.html

The XML Signature WG thanks the XML Schema WG for their work and the opportunity to review the last call Working Draft [1]. This comment does not address the ease of implementation but only whether the functionality as specified meets our requirements. To that end, the last call specification easily meets our requirements. In particular, the content types (elementOnly | empty | mixed | textOnly) and the Wildecard Schema Component <ANY/> are very useful for dealing with mixed content scenarios which are common to the signature domain. In time, the type extension capabilities might be a useful feature in constructing other cryptographic (key and certificate) syntaxes but we are presently not employing these typing features.

Since the XML Signature specification should enter the W3C Recommendation and IETF Standard tracks soon, we ask that the schema WG give priority to the need for a stabilized syntax and for expediently advancing the schema specification towards Recommendation.

Joseph Reagle, on behalf of the XML Signature WG

[1]

  • http://www.w3.org/TR/2000/WD-xmlschema-0-20000407/
  • http://www.w3.org/TR/2000/WD-xmlschema-1-20000407/
  • http://www.w3.org/TR/2000/WD-xmlschema-2-20000407/

Actual Resolution

Formal response to commentator.

replies "The decision is acceptable though as stated I need a little more help in understanding its effects."

LC-105. stable-syntax: Please stabilize syntax

Issue Class: A Locus: both Cluster: requirements Status: ok
Assigned to: Sperberg-McQueen Originator: Joseph M. Reagle Jr.

Description

Please give priority to stabilizing the syntax of XML Schema, and to speed in completing the Recommendation.

Interactions and Input

Input from Joseph M. Reagle Jr. <reagle@w3.org>:

"Joseph M. Reagle Jr." <reagle@w3.org> (on behalf of XML Signature WG) to XML Schema Comments list on Wed, 10 May 2000 12:48:18 -0400

Since the XML Signature specification should enter the W3C Recommendation and IETF Standard tracks soon, we ask that the schema WG give priority to the need for a stabilized syntax and for expediently advancing the schema specification towards Recommendation.

Actual Resolution

Formal response to commentator.

replies "The decision is acceptable though as stated I need a little more help in understanding its effects."

LC-106. clarify-components: Restructure Structures 2.2.*, or define components?

Issue Class: C Locus: structures 2.2 Cluster: 08 complexity Status: silent
Assigned to: editor Originator: Joseph M. Reagle Jr.

Description

Should short definitions of the twelve types of components be added, for clarity and to assist readers? Should there be a clearer correspondence between the types of components and the headings in section 2.2?

Interactions and Input

Input from Joseph M. Reagle Jr. <reagle@w3.org>:

"Joseph M. Reagle Jr." <reagle@w3.org> to XML Schema Comments list on Wed, 10 May 2000 12:48:14 -0400

2.2 XML Schema Abstract Data Model

I could understand this chapter better if the 12 components listed somehow corresponded more closely to the 2.2.* section headings. Perhaps, a quick definition on each of the 12 components, or a move away from the "primary" and "secondary" and "helper" designations (towards others) if those terms aren't substantively used elsewhere.

Actual Resolution

Formal response to commentator.

LC-107. prefix-consistency: Reagle's comments on XML Schema

Issue Class: C Locus: both Cluster: 08 complexity Status: silent
Assigned to: editor Originator: Joseph M. Reagle Jr.

Description

Should the examples in the spec use consistent prefixes (e.g. to make relevant examples easier to find with grep)?

Interactions and Input

Input from Joseph M. Reagle Jr. <reagle@w3.org>:

"Joseph M. Reagle Jr." <reagle@w3.org> to XML Schema Comments list on Wed, 10 May 2000 12:48:14 -0400

Namespace Prefixes

When trying to understand the specifications, I frequently found myself bouncing between the primer, structures, and datatypes documents, frequently using find or grep facilities to find bits of examples. Using a consistent namespace prefix (xs: or xsd:) through all documents would be helpful.

Actual Resolution

Formal response to commentator.

LC-108. xsi-xsd-names: Clear relation of xsi and xsd namespaces

Issue Class: C Locus: both Cluster: 08 complexity Status: silent
Assigned to: editor Originator: Joseph M. Reagle Jr.

Description

Should the instance (xsi) namespace be more clearly related to the schema (xsd) namespace?

Interactions and Input

Input from Joseph M. Reagle Jr. <reagle@w3.org>:

"Joseph M. Reagle Jr." <reagle@w3.org> to XML Schema Comments list on Wed, 10 May 2000 12:48:14 -0400

2.6 Schema-Related Markup in Documents Being Schema-Validated

Could the Schema Instance namespace somehow relate to the Schema namespace? For instance, I'd find it easier to understand who defined the schema instance namespace with something like:

  • http://www.w3.org/1999/XMLSchema/Instance
  • http://www.w3.org/1999/XMLSchema#Instance

Actual Resolution

Formal response to commentator.

LC-109. explicit-schemaloc: Make schema and DTD locations more explicit?

Issue Class: C Locus: structures A Cluster: publication Status: silent
Assigned to: editor Originator: Joseph M. Reagle Jr.

Description

Should the DTD and schema for schemas be modified to make the system identifiers used more explicit (e.g. by using absolute URIs instead of relative URIs)?

Interactions and Input

Input from Joseph M. Reagle Jr. <reagle@w3.org>:

"Joseph M. Reagle Jr." <reagle@w3.org> to XML Schema Comments list on Wed, 10 May 2000 12:48:14 -0400

Appendix A (normative) Schema for Schemas

It would be useful for XML declarations to include more explicit declarations of DTD and schema locations. For instance:

     <xml version='1.0'?>
     <!-- XML Schema schema for XML Schemas: Part 1: Structures -->
     <!DOCTYPE schema
       PUBLIC "-//W3C//DTD XMLSCHEMA 19991216//EN" 
       "http://www.w3.org/1999/XMLSchema.dtd">

     <schema xmlns="http://www.w3.org/1999/XMLSchema" 
       targetNamespace="http://www.w3.org/1999/XMLSchema" 
       blockDefault="#all" elementFormDefault="qualified" 
       version="Id: XMLSchema.xsd,v 1.1 2000/04/06 13:51:05 aqw Exp"
       xsi:schemaLocation ="http://www.w3.org/1999/XMLSchema.xsd" >

Defaults

The more explicit representation of default values in schema component definitions is useful. However, the many varied defaults can still be confusing, perhaps this could be simplified, or a table could be provided that includes all default values.

Actual Resolution

Formal response to commentator.

LC-110. defaults: Simplify default values, or document better

Issue Class: C Locus: both Cluster: publication Status: silent
Assigned to: editor Originator: Joseph M. Reagle Jr.

Description

Should the calculation of default values for properties of schema components be simplified? (Alternatively, should a table showing all default values and the conditions under which they apply be provided?)

Interactions and Input

Input from Joseph M. Reagle Jr. <reagle@w3.org>:

"Joseph M. Reagle Jr." <reagle@w3.org> to XML Schema Comments list on Wed, 10 May 2000 12:48:14 -0400

Defaults

The more explicit representation of default values in schema component definitions is useful. However, the many varied defaults can still be confusing, perhaps this could be simplified, or a table could be provided that includes all default values.

Actual Resolution

Formal response to commentator.

LC-111. ns-primer: Clearer guidelines in Primer section 3?

Issue Class: C Locus: primer 3 Cluster: 08 complexity Status: silent
Assigned to: editor Originator: Joseph M. Reagle Jr.

Description

Should Primer section 3 be revised to provide simpler, more explicit guidelines for schema authors (in cookbook style)?

Interactions and Input

Input from Joseph M. Reagle Jr. <reagle@w3.org>:

"Joseph M. Reagle Jr." <reagle@w3.org> to XML Schema Comments list on Wed, 10 May 2000 12:48:14 -0400

3. Advanced Concepts I: Namespaces, Schemas & Qualification

This topic (not necessarily the exposition) is difficult to comprehend with respect to both comprehending the concepts and as a potential source of validation errors in instances I create. Perhaps some guidelines such as, "If you want to create an instance that has no prefixes in children elements then X; if you want to create an instance ... Y" so readers can easily jump-start their own schema writing.

Actual Resolution

Formal response to commentator.

LC-112. determinism: Determinism and Choices of Sequences

Issue Class: A Locus: structures Cluster: 12 content-models Status: silent
Assigned to: Henry Thompson Originator: Bob Schloss

Description

Some aspects of the Unique Particle Attribution (determinism) constraint appear to need clarification.

Interactions and Input

Input from Bob Schloss:

Bob Schloss <rschloss@us.ibm.com> to XML Schema Comments list on Wed, 10 May 2000 19:42:22 -0400

My understanding is that Unique Particle Attribution constraint is so that parsers do not have to lookahead.

If I define a complex type as follows:

<xsd:complexType name="ChoiceOfSequences1">
  <xsd:choice>
     <xsd:sequence>
         <xsd:element name="a" type="typeOfA"/>
         <xsd:element name="b" type="typeOfB"/>
         <xsd:element name="d" type="typeOfD"/>
      </xsd:sequence>
      <xsd:sequence>
          <xsd:element name="a" type="typeOfA"/>
          <xsd:element name="c" type="typeOfC"/>
      </xsd:sequence>
    </xsd:choice>
  </xsd:complexType>

is this permitted (a legal type definition)?

I could imagine the answer is yes, because a parser doesn't have to look ahead during parsing.

I could imagine the answer is no in the case where the equivalence classes of c and of b are not completely independent, but only because the first sequence requires that d follow b.

If this second thought is the one intended by the working group, shouldn't Structures appendix E say something about this under 'Unique Particle Attribution'?

Here is a different case:

If I define a complex type as follows:

<xsd:complexType name="ChoiceOfSequences2">
  <xsd:choice>
     <xsd:sequence>
         <xsd:element name="a" type="typeOfA1"/>
         <xsd:element name="b" type="typeOfB"/>
      </xsd:sequence>
      <xsd:sequence>
          <xsd:element name="a" type="typeOfA2"/>
          <xsd:element name="c" type="typeOfC"/>
      </xsd:sequence>
    </xsd:choice>
  </xsd:complexType>

is this permitted (a legal type definition)?

Does this depend on whether there is a common parent type for typeOfA1 and typeOfA2 other than the ur-type? (Since if there was, and the xsi:type attribute was not used on the a element in the instance document with a value of either typeOfA1 or typeOfA2, the parser would have to look ahead before determining which branch of the choice was being processed).

I think the general problem related to choices (which may contain choices, which may contain choices) which contain sequences.

Here is a third case:

If I define a complex type as follows:

<xsd:complexType name="ChoiceOfChoices3">
  <xsd:choice>
     <xsd:choice>
         <xsd:element name="a" type="typeOfA1"/>
         <xsd:element name="b" type="typeOfB"/>
      </xsd:choice>
      <xsd:choice>
          <xsd:element name="a" type="typeOfA2"/>
          <xsd:element name="c" type="typeOfC"/>
      </xsd:choice>
    </xsd:choide>
  </xsd:complexType>

is this permitted? I don't think it is, because a choice of choices is like flattening to one choice, and then there are 2 different types that can appear with element a. (Appendix E does rule out this if the user had it flattened, and in Section 5.7 on model groups, I think this is covered by Element Declarations Consistent). But this still seems to me that a "Also see..." in Appendix E should cover this case.

I guess I'm asking for clarification of these examples now, and also that Appendix E be more complete in the next spec working draft.

Actual Resolution

Formal response.

LC-113. pt1-lesch: Minor comments for WD-xmlschema-1-20000407

Issue Class: C Locus: structures Cluster: misc Status: silent
Assigned to: editor Originator: Susan Lesch

Description

Various editorial suggestions.

Interactions and Input

Input from Susan Lesch <lesch@w3.org>:

Susan Lesch <lesch@w3.org> to XML Schema Comments list on Wed, 10 May 2000 19:41:36 -0800

These are just a few minor editorial comments on your Last Call draft, XML Schema Part 1: Structures "work in progress." Please feel free to ignore or use them as you see fit.

In the interest of advancing schemas in practice, perhaps in the Abstract or in Introduction section 1, you could identify your audience, encourage them, and (like MathML) explain that this is not a user's guide for the general public. This specification is carefully and beautifully done, but it was a mystery for me on one reading, even after reading the Primer.

Both Webster's (en-US) and the concise Oxford dictionaries list the "z" rather than the "s" form of these words first: normalisation, normalised, optimise, standardised, and characterisation. They could be changed to z's.

The text does not refer to most of the References (Cambridge Communique, DCD, DDML, ISO-11404, and so on). I'm not certain they need to be there, especially the old URI RFCs.

Though I didn't correct this here, apparently the use of "we" is frowned on in specifications. I don't yet have a proper reference for you. One reason is in the final paragraph of http://lists.w3.org/Archives/Public/www-xml-linking-comments/2000JanMa r/0079.html which explains that first person English is hard to translate.

muzmo.com and foo.com are registered domains. You could consider using example.com, example.net, and example.org which IANA registered for examples. (See RFC 2606 section 3 at http://www.ietf.org/rfc/rfc2606.txt.)

Minor typos (quotes are followed by a suggestion)

2.2.1.3 par. 1 with respect to particular simple type ==> with respect to a particular simple type

2.2.1.3 par. 2, list items 1 and 3 A restriction ==> a restriction

3.4 table - {content type}, and 3.4 par. 11, and 3.13 par. 7 I.e ==> i.e.,

3.7 par. 3 {compositor}determines ==> {compositor} determines

3.13 par. 11 . therein. ==> .

4.3.3 table {content type} 4.4.2.3 the the ==> the

5.1 list item 4 has a subheading 4 (that should perhaps be 4.1 or 1).

In 5.11, the first sentence is repeated in the third line

5.11 note in 1.1.6 It is trivially ==> It is trivial

6.3.1 par. 1 mime ==> MIME

6.3.2 list item 2 note, and 6.3.2 last par. recommendation ==> Recommendation

B. line 3 The the ==> The

B. line 172 exculsive ==> exclusive

D. HTML 4.0 Specification ==> HTML 4.01 Specification

RFC 1808,Relative ==> RFC 1808, Relative

RFC 1738,Uniform ==> RFC 1738, Uniform

RFC 2141,URN ==> RFC 2141, URN

XSchema c/xscspecv4.htm For more ==> c/xscspecv4.htm. For more

Input from ht@cogsci.ed.ac.uk (Henry S. Thompson):

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list on 11 May 2000 10:23:47 +0100

Thanks for your careful reading.

Susan Lesch <lesch@w3.org> writes:

These are just a few minor editorial comments on your Last Call draft, XML Schema Part 1: Structures [1] "work in progress." Please feel free to ignore or use them as you see fit.

In the interest of advancing schemas in practice, perhaps in the Abstract or in Introduction section 1, you could identify your audience, encourage them, and (like MathML) explain that this is not a user's guide for the general public. This specification is carefully and beautifully done, but it was a mystery for me on one reading, even after reading the Primer.

Good idea.

Both Webster's (en-US) and the concise Oxford dictionaries list the "z" rather than the "s" form of these words first: normalisation, normalised, optimise, standardised, and characterisation. They could be changed to z's.

I'll check my UK dictionary -- as a UK (naturalised :-) speaker, I've used UK spelling throughout.

The text does not refer to most of the References (Cambridge Communique, DCD, DDML, ISO-11404, and so on). I'm not certain they need to be there, especially the old URI RFCs.

Right.

Though I didn't correct this here, apparently the use of "we" is frowned on in specifications. I don't yet have a proper reference for you. One reason is in the final paragraph of http://lists.w3.org/Archives/Public/www-xml-linking-comments/2000JanMar/0079.html which explains that first person English is hard to translate.

But I hate the academic passive, which is the obvious alternative . . .

muzmo.com and foo.com are registered domains. You could consider using example.com, example.net, and example.org which IANA registered for examples. (See RFC 2606 section 3 at http://www.ietf.org/rfc/rfc2606.txt.)

Agreed.

Actual Resolution

Formal response to commentator.

LC-114. pt1-arnold: Minor part 1 comments

Issue Class: C Locus: structures Cluster: 08 complexity Status: silent
Assigned to: editor Originator: Curt Arnold

Description

Various editorial suggestions and requests for clarification.

Interactions and Input

Input from Curt Arnold <carnold@houston.rr.com>:

"Curt Arnold" <carnold@houston.rr.com> to XML Schema Comments list on Wed, 10 May 2000 23:56:29 -0500

Part 1/Section 3.4

A complex type for which {abstract} is true must not appear as the {type definition} of an ElementDeclaration...

Actually, it would seem that you would allow it, but it would require that the xsi:type specify a non-abstract type derived from the type used in the declaration.

Part 1/Section 4.3.7

Wildcards are subject to the same ambiguity.... If an instance element could match either an explicit particle and a wildcard, or one of two wildcards, within the content model of a type, that model is in error.

If I had version 1.0 of a schema and wanted to create a variant that would be forward compatible for a processing application (so that the processing application would accept 1.0 valid documents and later revisions), I'd be inclined just mechanically add <any> and <anyAttribute> elements, like:

<!-- definition in 1.0 schema   -->
<complexType name="pipe">
    <element ref="material" minOccurs="0" maxOccurs="1"/>
</complexType>

<!--  definition in 1.0+ schema   -->
<complexType name="pipe">
    <element ref="material" minOccurs="0" maxOccurs="1"/>
    <any minOccurs="0" maxOccurs="unbounded"/>
    <anyAttribute/>
</complexType>

Unfortunately, this would run into the Unique Particle Attribution issue and would be in error by my reading. In this simple case, it is fairly easy to rewrite the permissive complexType as:

<complexType name="pipe">
    <any minOccurs="0" maxOccurs="unbounded"/>
    <anyAttribute/>
</complexType>

However, that could be much more difficult in complex real-life schemas. Some sort of lower priority for wildcard matches that would allow the first formulation while avoiding the attribute issue would be beneficial.

Constraint on Schemas: Particle Restriction OK (Elt:Elt - Name and Type OK)/Point 1.1

{nullable} are the same: wouldn't it be a valid restriction if the base type was nullable and the derived type inhibited xsi:null="true"

Section 5.11/Constraint on Schemas: Derivation Valid (Extension)/Point 1.1.2

Either I'm reading it wrong, or it is saying that you must fully repeat all the attributes defined in the base type in the derived type.

Point 1.2.2

So if I have:

<complexType name="base">
    <anyAttribute/>
</complexType>

<complexType name="derived" base="base" derivedBy="restriction">
    <attribute name="value" use="required"/>
</complexType>

Does this still allow any other attribute to appear, but value is required? If so doesn't that run into the Unique Particle Attribute issue.

Point 1.3:

Is this saying that if my base type definition has a required attribute, I have to repeat in a derived by restriction type?

Section 5.12/Constraint on Schemas:Derivation Valid

Point 1.2(.1?) This would seem to disallow adding new facets in the derived type

<simpleType name="derived" base="xsdt:string">
    <!--  this facet isn't declared for string   -->
    <pattern value="\d*"/>
<simpleType>

Actual Resolution

Formal response to commentator.

LC-115. qname-resolution: Resolution of QNames references

Issue Class: A Locus: structures 6.2.2 Cluster: 19 modules Status: ok
Assigned to: Roger Costello Originator: Curt Arnold

Description

Should QName resolution seek first in the target namespace for unqualified names, then in the namespace of simple datatypes? If no change is made, should the current rules be stated more prominently (both in Structures and in Primer)? [Uncertain about specifics of proposal. -MSM]

Interactions and Input

Input from Curt Arnold <carnold@houston.rr.com>:

"Curt Arnold" <carnold@houston.rr.com> to XML Schema Comments list on Thu, 11 May 2000 00:08:22 -0500

Section 6.2.2: References to schema components across namespaces

The comments in the example are the only place that I have found that indicate how unqualified QName references are to be resolved. From a usability standpoint, it would be much preferable to that an unqualified name be first attempted to be located within the target namespace then with the datatypes (or schema namespace). This, of course, would be a more complex resolution than would be used for a unqualified tagname but seems to be consistent with previous usage.

If unqualified names are strictly going to be resolved this way, an explicit statement should be made prominently in both Primer and Part 1.

Input from Henry Thompson:

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list on 11 May 2000 10:26:34 +0100

They wouldn't be QNames in the meaning of the word if we did it that way. We didn't think it wise to invent a new concept almost-QName-but-not-exactly.

Actual Resolution

Commentator confirms he is satisfied on this issue ("with proper documentation").

LC-116. retro-schemaloc: Require declaration before use of schema location?

Issue Class: D Locus: structures 6.3.2 Cluster: 19 modules Status: nok
Assigned to: Noah Mendelsohn Originator: Curt Arnold

Description

Should XML Schema require that schema locations be declared before or above the elements which claim validity according to the schema in question?

Interactions and Input

Input from Curt Arnold <carnold@houston.rr.com>:

"Curt Arnold" <carnold@houston.rr.com> to XML Schema Comments list (and xml-dev) on Thu, 11 May 2000 01:19:19 -0500

Section 6.3.2: Point 4

Having declarations of schemaLocations anywhere in the document having document scope, of course, seriously complicates event-based validation. It would seem reasonable to require that schemaLocations appear before the need for the corresponding schema information.

Actual Resolution

Discussed in call of 2000-07-06.

The question is on the commentator's proposal to require that schemaLoc information appear 'before' occurrences of constructs from the namespace it relates to. The three known possibilities are:

  • say yes (above)
  • say yes (above or to the left -- including occurring on the start-tag were the first such constructs appear)
  • say no (no change needed)

[Discussion ...]

RESOLVED unanimously: to make this a priority feedback issue.

RESOLVED unanimously: to dispose of issue LC-116 by saying yes, some such restriction will be added.

There was some sentiment for scoping schemaLoc information in the same way that namespace declarations are scoped (i.e. specifying that it must occur 'above or in the start-tag of' any use of constructs in the namespace. The proponderance of opinion, however, was for specifying that it must occur above or to the left.

RESOLVED unanimously: to require that schemaLoc information, if it occurs, should appear above or to the left of any use of names from that namespace.

The sense of the word 'require' in the resolution just agreed to was discussed. Two formulations were offered:

  1. The first schemaLoc for a namespace must not be preceded by any names from that namespace; otherwise it is an error.
  2. Any schemaLoc for a namespace which is preceded by any names from that namespace must be ignored by any conforming processor.

The second formulation is an attempt to avoid making it an error, while still making clear that one-pass schemaLoc-aware processing must be possible. A straw poll showed a preponderance of support for the first formulation.

RESOLVED unanimously: to adopt the first formulation.

Formal response.

Commentator's answer suggests refinement.

LC-117. locating-schema-resources: (Locating Schema resources)

Issue Class: D Locus: structures 6.3 Cluster: 19 modules Status: ok
Assigned to: Noah Mendelsohn Originator: Curt Arnold

Description

Should the rules for locating schema components be modified to use public identifiers and otherwise improve the matchup among schemas, namespaces, and resources?

Interactions and Input

Input from Curt Arnold <carnold@houston.rr.com>:

"Curt Arnold" <carnold@houston.rr.com> to XML Schema Comments list (and xml-dev) on Thu, 11 May 2000 01:19:19 -0500

In general, I think locating schema resources has a couple of serious deficiencies.

First, there is not a one-to-one correspondence between namespaces and schemas. For example, the XHTML namespace has three distinct DTD's associated with it which are distinguished using public identifiers. There may also be successive versions of schemas for the same namespace.

Second, a single schema resource may contain many distinct (possibly tens if not hundreds) namespaces through inclusions. I believe the typical usage would be to have a single schema resource that would contain definitions for all the expected namespaces and then, occassionally, one or more additional schema resources for unanticipated namespaces. Having to enumerate all the namespaces that appear in a mega resource would get very long and prone to error.

Third, there is not a conflict resolution mechanism when a namespace has multiple schema locations are declared either implicitly (through an import within a schema) or explicitly through a schemaLocation attribute.

Fourth, there is not a mechanism to identify a schema resource to be used to validate an XML 1.0 (pre-namespace) compatible document.

It would seem the best approach would be to use public identifiers (fortunately having a rebirth of interest on xml-dev) to explicitly identify a specific schema resource instead of relying on an ambiguous combination of namespace and namespaceLocation to resolve whether a particular cached version of a schema is appropriate.

What I would suggest is that:

  1. schema element have a targetPublicIdentifier attribute in addition to a targetNamespace.
  2. xsi:schemaPublic be a list of public identiers
  3. xsi:schemaSystem be a list of URI's
  4. xsi:defaultNamespace would identify the namespace to be used for unqualified elements. (see note)
  5. A publicIdentifier simple type be added to the built-in datatypes.
  6. The use of a processing instruction as an alternative mechanism for specifying schema resources for XML 1.0 compatible documents. Since these would not involve multiple namespaces or resources, I'd recommend something like the following to appear before the document element:
<?xsi:schema defaultNamespace PUBLIC pubid sysid ?>
<?xsi:schema defaultNamespace SYSTEM sysid ?>

When xsi:schemaPublic and xsi:schemaSystem appear on the same element, there must be a one to one correspondence between entries, so that if the second public identifier cannot be resolved, the second URI could be used to retrieve the resource. I'm assuming that there can be an acceptible mechanism for representing a null public identifier and a null URI.

When schema information appears for one namespace in multiple schema resources, the first appearance would be used for validation.

Proposed Resolution

C. M. Sperberg-McQueen to IG, 5 July 2000

The commentator proposes that we introduce explicit support for public identifiers into the XML Schema language, and use them to address some of the puzzles which result from the current fact that any namespace may be formalized by more than one schema document; HTML is a good example.

I believe there is likely to be consensus in the WG that this is probably not a good idea.

If I had to provide a rationale, I'd say:

  • Public identifiers have too great an overlap with namespace names AND with URIs to make for a really comfortable match. The overlap in function is guaranteed to make every future proposal to use, or even to define, public identifiers as controversial and difficult to resolve as past proposals have been.
  • The proper matchup among namespace names and schema documents is already complex; adding public identifiers to the mix would not necessarily simplify things, even if public identifiers were not controversial.
  • Sufficient unto the day are the evils thereof. We believe that schemaLoc and out-of-band methods of distinguishing among the multiple schema documents for a given namespace provide as good a solution as is currently available; were we to take on the problems of design and definition which would be entailed in any attempt to define a role for public identifiers, we would be unlikely to produce a dramatically better matchup to the complexities of reality. We would be almost guaranteed, however, of expending large amounts of effort in the process. We have enough on our plate already.

Actual Resolution

Discussed in call of 2000-07-06.

The question is on the commentator's proposal that we add facilities to relate namespaces and schemas to public identifiers.

There was no visible support for the proposal.

RESOLVED unanimously: to respond to the suggestion with a polite no, giving a rationale which is substantially that outlined in MSM's message of 5 July.

Formal response.

Commentator's reply, second reply, and third reply. Net: he is satisfied.

LC-118. easy-signable-schemas: Making it easy to create signable schemas

Issue Class: D Locus: both Cluster: 27 i18n-boolean Status: silent
Assigned to: Ashok Malhotra Originator: Martin J. Duerst

Description

...

Interactions and Input

Input from Martin J. Duerst <duerst@w3.org>:

"Martin J. Duerst" <duerst@w3.org> to XML Schema Comments list on Thu, 11 May 2000 16:53:52 +0900

This review deals with the suitability of XML Schema to describe the constructs used in XML-DSig (Schema/DTD).

What is missing, and what I would hope the XML DSig group could contribute significantly to, is some kind of analysis e.g. with respect of what potentials and problems XML Schema offers with regards to describing data that can easily be signed. Two examples:

  1. Because the 'boolean' datatype has four lexical values (true, false, 1, 0; this is in the spec, no kidding) instead of two lexical values, that means that additional effort (at least) is necessary if somebody wants to create a schema for some data containing boolean values.
  2. If there is some way to express that elements of the same type have to appear in a certain order (don't know whether this is in the spec or not), this will also help to create schemata that can be used to validate data and then feed that data into XML DSig without any or without much processing.

In other words, try to make sure that for appropriately designed XML Schemas, no additional 'data canonicalization' step is necessary to sign some data.

What do the DSig experts in this group think about such issues?

Input from Joseph M. Reagle Jr. <reagle@w3.org>:

"Joseph M. Reagle Jr." <reagle@w3.org> to XML Schema Comments list on Thu, 11 May 2000 13:00:22 -0400

At 04:53 PM 5/11/00 +0900, Martin J. Duerst wrote: Because the 'boolean' datatype has four lexical values (true, false, 1, 0; this is in the spec, no kidding) instead of two lexical values, that means that additional effort (at least) is necessary if somebody wants to create a schema for some data containing boolean values.

Martin, thank you for reminding me about this. I recall you've mentioned this before and I believe we had an agreement from Michael to do something about ensuring a consistent lexical representation of data types. I can't find a URL for that agreement (I think it was sometime last year) but I can find evidence that the WG was trying to satisfy that requirement (for floating points at least):

3.2.3 - 3.2.5 Lexical notation of floating-point numbers [Where the author requested other notations] This argument was made by several people but there was a strong sentiment for a single lexical representation. http://lists.w3.org/Archives/Public/www-xml-schema-comments/2000AprJun/0043.html

However, I'm not sure to what extent this is a problem (I'm expressing ignorance, not arguing it isn't). If an XML instance uses '0' that is signed, is there and expectation that since the schema permits a 'false' as well, intermediary processors would change it? I appreciate this might happen with character code mappings, but I tend to view schema's as constraints on permissible values, and not a processor (in the vein of infoset/C14N/DOM). (For instance, just because a schema permits an unconstrained string, one wouldn't presume it would change the string ...?)

  • If there is some way to express that elements of the same type have to appear in a certain order (don't know whether this is in the spec or not), this will also help to create schemata that can be used to validate data and then feed that data into XML DSig without any or without much processing..

I don't quite follow. Element of the same element type? Can you give an example?

Input from Martin J. Duerst <duerst@w3.org>:

"Martin J. Duerst" <duerst@w3.org> to XML Schema Comments list on Fri, 12 May 2000 16:38:15 +0900

However, I'm not sure to what extent this is a problem (I'm expressing ignorance, not arguing it isn't). If an XML instance uses '0' that is signed, is there and expectation that since the schema permits a 'false' as well, intermediary processors would change it?

Not necessarily, but that may well happen. We already see in the DSig group that people want to use the DOM, and don't want to keep around e.g. whether an attribute was single-quoted or double-quoted. As we move up the semantic ladder (well, it feels more like a very flat slope, but that's a different issue), exactly the same will very easily happen one step higher.

I appreciate this might happen with character code mappings, but I tend to view schema's as constraints on permissible values, and not a processor (in the vein of infoset/C14N/DOM).

Constraints on permissible values is one function, and probably the most important one the way the spec is written. But for datatypes, the 'infoset' aspect is already there, and C14N is what we are just discussing here, and would be very very easy to add at this point in time compared to having to start another group,... in a few months. Something like DOM is not done yet, but conversion from data to XML streaming and back is an important application of XML Schema, probably the most important one.

(For instance, just because a schema permits an unconstrained string, one wouldn't presume it would change the string ...?)

There is a clear difference between changing the value, and producing a different lexical representation for the same value. Changing from 0 to false is the later, changing the string is the former.

  • If there is some way to express that elements of the same type have to appear in a certain order (don't know whether this is in the spec or not), this will also help to create schemata that can be used to validate data and then feed that data into XML DSig without any or without much processing.

I don't quite follow. Element of the same element type? Can you give an example?

Well, let's assume you have a list of students, with student id, birthday, and a boolean for 'male' (gender). The task is to produce a signable XML document from this data. In order for the sign to be reproducable, the XML document has to be exactly the same for the same data. Assuming that the structure looks something like

<student>
 <id>... </id>
 <birthday>date</birthday>
 <male>boolean</male>
</student>
...

and is described as an XML Schema, the 'missing pieces' for the above task are to make sure the students are always in the same order (e.g. by id) and that date and boolean are always in a canonical form (and of course that the underlying XML is in C14N).

Probably the above is not the most appropriate example, but I hope you get the idea.

Input from John Boyer <jboyer@PureEdge.com>:

"John Boyer" <jboyer@PureEdge.com> to XML Schema Comments list on Fri, 12 May 2000 09:42:08 -0700

<martin> Not necessarily, but that may well happen. We already see in the DSig group that people want to use the DOM, and don't want to keep around e.g. whether an attribute was single-quoted or double-quoted. As we move up the semantic ladder (well, it feels more like a very flat slope, but that's a different issue), exactly the same will very easily happen one step higher. </martin>

<john> Actually, I'm pretty sure we would argue that if you want to schema normalize an XML document, then you would need another transform for that. Whether we define such a transform in this version of the spec is a decision of the chairs.

Input from Martin J. Duerst <duerst@w3.org>:

"Martin J. Duerst" <duerst@w3.org> to XML Schema Comments list on Sun, 14 May 2000 11:49:02 +0900

At 00/05/12 09:42 -0700, John Boyer wrote: <john> Actually, I'm pretty sure we would argue that if you want to schema normalize an XML document, then you would need another transform for that.

Can you give some examples for what you mean by 'schema normalize', i.e. a short document before and after normalization, or so?

What I'm saying is that with some rather minor tweaks to the current Schema drafts, it will be possible to easily write Schemata that will make sure that documents that validate against these Schemata will already be normalized and won't need any normalzation on the schema level anymore.

Whether we define such a transform in this version of the spec is a decision of the chairs.

How could such a transformation look?

Actual Resolution

Discussed in call of 2000-07-28.

The issue is a general exhortation to the XML Schema WG to make the schema language conduce to the creation of data that can easily be signed. No specific proposals are made, beyond use of single lexical representation; the DSig experts (i.e. Joseph Reagle) who participated in the discussion express a certain skepticism that multiple lexical representations are really a problem.

RESOLVED: to close LC-118 with thanks and cross-refer, for the substantive proposal, to LC-220.

LC-119. Q-include: Question on include

Issue Class: A Locus: structures Cluster: 19 modules Status: silent
Assigned to: Ugo Corda Originator: gmacri@libero.it

Description

A request for clarification on include

Interactions and Input

Input from gmacri@libero.it <gmacri@libero.it>:

"gmacri@libero.it"<gmacri@libero.it> to XML Schema Comments list on Thu, 11 May 2000 14:20:06 +0200

When I write a XML schema, for instance schema1.xsd, in which is included another schema, schema2.xsd, the elements's, attributes's and types's name of child of schema1.xsd must be not equal at elements's, attributes's and types's name of child of schema2.xsd?

Input from ht@cogsci.ed.ac.uk (Henry S. Thompson):

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list on 11 May 2000 15:19:27 +0100

That's correct, assuming you mean elements, attributes and types declared at the top level.

Actual Resolution

Formal response.

LC-120. pt2-durations: [Clarifications] Part 2 Datatypes

Issue Class: C Locus: datatypes Cluster: 04 datetime Status: nok
Assigned to: editor Originator: Ninggang Chen

Description

A variety of questions about the datatypes spec, in particular about time durations expressed in abstract or concrete months, years, etc.

Interactions and Input

Input from Ashok Malhotra:

petsa@us.ibm.com to w3c-xml-schema-ig@w3.org and others, Wednesday, May 03, 2000 2:39 PM

"Asir S Vedamuthu" <asirv@webmethods.com>@w3.org on 05/03/2000 01:36:48 PM

(1) <Snip> Section 3.3.8 integer http://www.w3.org/TR/xmlschema-2/#integer

Integer has the following constraining facets: precision, scale, .. </Snip>

Please explain the validation contribution of 'precision' & 'scale' if the {base type definition} is integer.

Integer is derived from decimal by setting scale=0 The PSV infoset for derived datatypes indicates all the facets of the base datatype and their fixed values.

(2) <Snip> Section 3.2.6 timeDuration http://www.w3.org/TR/xmlschema-2/#timeDuration

.. where nY represents the number of years, nM the number of months, .. </Snip>

<Snip> Section 4.2.6 - 4.2.9

.. if the {base type definition} is one of date and time related datatypes, then the value must be chronologically less than or equal to {value} </Snip>

'nY' - Does a year have 360 or 365 days?

'nM' - Does a month have 28, 30, 31, or 400 days?

Note: I scanned thru ISO 8601 and it does not say anything about it

The number of days in the month or year will depend on when the period occurs. We take the position that this is always known and, thus, there is no ambiguity but would like to see counterexamples. ISO8601 seconf edition, does say in 3.15 that "in certain applications a month is regarded as a unit of time of 30 days".

(3) <Snip> Section 4.2.1 length http://www.w3.org/TR/xmlschema-2/#dc-length Constraint on Schemas: length and minLength - it is an error for both length and minLength to be members of {facets} </Snip>

Is it ok if length and maxLength are members of {facets}?

No, if length is specified neither minLength or maxLength can be specified.

(4) <Snip> Sectin 4.2.6 maxInclusive http://www.w3.org/TR/xmlschema-2/#dc-maxInclusive Constraint on Schemas: It is an error for the value specified for minInclusive to be greater than the value specified for maxInclusive for the same datatype</Snip>

Is it ok if minExclusive to be greater than maxInclusive? This question also applies to Section 4.2.7 - 4.2.9

No.

(5) <Snip> Section 4.2.5 enumeration http://www.w3.org/TR/xmlschema-2/#dc-enumeration [value] a set of values from the value space of the {base type definition}</Snip>

Lets say I have a <simpleType/> A that restricts a {base type definition} B. In addition, <simpleType/> A has a set of <enumeration> values, say e1, e2, e3, .., en. Is the set {e1, e2, .. } of values form the value space of {base type definition} B or <simpleType/> A? Note: it is the synthesis of facet values which together determine the value space and properties of the datatype. Please clarify

The enumerated values must be from the value space of A.

Input from Asir Vedamuthu:

Asir S Vedamuthu <asirv@webmethods.com> to <w3c-xml-schema-ig@w3.org> and others, (date?)

Item 1

AM: Integer is derived from decimal by setting scale=0 The PSV infoset for derived datatypes indicates all the facets of the base datatype and their fixed values

If so, integer datatype has -

  • (a) facets: precision, scale, pattern, enumeration, maxInclusive, maxExclusive, minInclusive and minExclusive
  • (b) constraining facets: pattern, enumeration, maxInclusive, maxExclusive, minInclusive and minExclusive

Item 2

AM: The number of days in the month or year will depend on when the period occurs. We take the position that this is always known and, thus, there is no ambiguity but would like to see counterexamples. ISO8601 seconf edition, does say in 3.15 that "in certain applications a month is regarded as a unit of time of 30 days".

However, 'period' is not a facet or constraining facet of timeDuration. Need more clarification.

Item 3, 4 & 5

Cool. Then item 3, 4 & 5 call for editorial corrections to Part 2 Datatypes spec.

Input from Ashok Malhotra:

Ashok Malhotra to w3c-xml-schema-ig-request@w3.org, Thursday, May 04, 2000 10:42 AM

[The number of days will depend on when the period occurs; this should always be known, no? If you have another use case, it would be useful to see it.]

Input from Asir S Vedamuthu:

Asir S Vedamuthu [mailto:asirv@webmethods.com] to petsa@us.ibm.com, Thursday, May 04, 2000 2:19 PM

Here is a simple use case -

<project>
	<title>Demolish I-95 and build it from scratch</title>
	<startDate>unknown</startDate>
	<duration xsi:type="duration">P30Y45M55D</duration>
</project>

&

<simpleType name="duration" base="dt:timeDuration">
	<minInclusive value="P0Y40M25D"/>
	<maxInclusive value="P35Y53M22DT45H23M68S"/>
</simpleType>

Input from Ninggang Chen <nchen@webMethods.com>:

"Ninggang Chen" <nchen@webMethods.com> to XML Schema Comments list on Thu, 11 May 2000 11:26:34 -0400

According to ISO 8601, there are four ways to express a period of time. The timeDuration datatype uses the second way, which is expressed "in one or more specific components but not associated with any specific start or end". ([ISO 8601] section 5.5.1)

There is no facet in timeDuration specifying the starting point of the time period and as we can see from Asir's example that the starting point is not necessarily known. Therefore, I have a impression that the definition of timeDuration is incomplete. If we don't have an unambiguous definition of year and month, this data type is simply not usable.

Actual Resolution

Formal response to commentator. Commentator is unsatisfied.

LC-121. ids-not-names: Element names should be xml:ids in schemas

Issue Class: D Locus: structures Cluster: 05 fco Status: silent
Assigned to: Henry Thompson Originator: Tim Berners-Lee

Description

Shall XML Schema be modified so that:

  • The name attribute on element, complexType, and simpleType declarations is of type ID.
  • As a consequence, the symbol spaces for names of complex types, simple types, and element types are merged.
  • As a second consequence, top-level and local declarations of elements and complex types cannot use the same name.
  • The name attribute on element, complexType, and simpleType declarations is renamed id.

Interactions and Input

Input from Tim Berners-Lee <timbl@w3.org>:

"Tim Berners-Lee" <timbl@w3.org> to XML Schema Comments list on Thu, 11 May 2000 16:07:19 -0400

Comments on xml-schemas

Firstly, It is essential that important things be referenceable by URI. It is much easier and safer to use a barenames #id xpointer reference than a complex xpointer expression. Given that HTML element name and complex types are really important concepts in a schema, and ones which people will want to refer to from other languages and other schemas, please use type IDs for that. (I note that unfortunately this cannot apply to attributes: the creators of schemas will have to think of [an] appropriate ID and give it explicitly if they want others to be able to use a barename reference to refer to the attribute name.) It is I think worth forcing complex types and element names to share the same space, because little is lost (except for some confusion!) and one gains the power of xml ID and barename xpointer references for both.

Secondly, I note that the schema spec used name= for element types instead of the more natural id="". I made that mistake a long time ago with HTML <A name=> ... and it has been a thorn in everyone's side ever since! Please do not make that mistake again!!!! Specs should use id= for things of type ID. (I would be in favor of reserving and predefining it in all namespaces myself, as it would allow an xpointer reference to be followed without having to look up the DTD or schema, and I feel that without that XML becomes unbearably complex)

The same applies to data types. If schema foo defines a datatype bar then it really is too clumsy unless foo#bar is the datatype's URI.

Actual Resolution

Discussed at Edinburgh ftf.

After much discussion, agreed that this is an important basic problem. The WG didn't buy the proposed solution. We don't believe we have a good long term solution. We will in the short term explain better what is available and in long term will provide something that defines names for all important constructs.

Formal response to commentator.

LC-122. ns-hasfacet: xsd:appinfo

Issue Class: C Locus: structures Cluster: 05 fco-appinfo Status: silent
Assigned to: Paul Biron Originator: Ralph R. Swick

Description

Should the XML Schema for Datatypes be modified so that the has-facet and has-property elements (which occur within appinfo) (1) be assigned to a (documented) namespace, and (2) be given made first-class objects by being given clear names.

Interactions and Input

Input from Ralph R. Swick <swick@w3.org>:

"Ralph R. Swick" <swick@w3.org> to XML Schema Comments list on Thu, 11 May 2000 16:23:33 -0400

The xsd:appinfo schema component in the schema-for-schemas http://www.w3.org/TR/2000/WD-xmlschema-1-20000407/#element-appinfo appears to adequately address the request for a mechanism to permit an XML Schema schema document to hold declarations for mapping to other application data structures documented in item 3.2 of http://www.w3.org/TR/1999/NOTE-schema-arch-19991007.

I thank the XML Schema WG for including this feature. I also commend the WG for illustrating one usage scenario in the Schema for Datatype definitions http://www.w3.org/TR/2000/WD-xmlschema-2-20000407/#schema

My enthusiasm is tempered, however, by the lack of any guidance on how to discover the semantics of the two example elements has-facet and has-property. Having constructed all this wonderful machinery for extending the declarative power of an XML Schema, the sole example of its use fails to lead the way in applying that same machinery to the extension. has-facet and has-property do not themselves have first-class names, nor are they even clearly part of a namespace. I encourage the spec editors to lead by example in your application of appinfo.

Actual Resolution

Discussed at Edinburgh ftf.

Datatypes editors to provide the requested namespace and documentation for it and associate these elements with it.

Formal response.

Followup.

LC-123. cm-group: Inconsistency on content model for group

Issue Class: D Locus: structures Cluster: 17 sfs/content-models Status: silent
Assigned to: Henry Thompson Originator: Curt Arnold

Description

Shall the schema for schemas and the DTD for schemas be changed to align their content models for the group element more closely?

Interactions and Input

Input from Curt Arnold:

"Arnold, Curt" <Curt.Arnold@hyprotech.com> to XML Schema Comments list on Thu, 11 May 2000 15:43:15 -0600

The narrative and schema for schemas allow groups to contain annotation, group, and any elements as children. The DTD only allows all, choice and sequence.

Actual Resolution

Discussed in call of 2000-06-30.

RESOLVED without dissent: to instruct HST to bring the DTD and the schema for schemas into alignment with each other as regards the content model for group, and to bring the content model for group into alignment with complexType.

Formal response to commentator.

LC-124. MPEG: MPEG-7 Feedback to Last Call for Review

Issue Class: D Locus: both Cluster: formal Status: unassigned
Assigned to: Frank Olken Originator: Jane Hunter

Description

[This issue has been split. See the cross references below for the location of the various parts.]

Interactions and Input

Cf. Arrays?

Cf. Provide guidance on extending schema for schemas?

Cf. Allow specification of size constraints in instance?

Cf. How do I restrict IDREFs to particular (element) types?

Cf. Streamline restriction of content models?

Cf. Simultaneous restriction and extension?

Cf. Re-align occurrence indications for elements and attributes?

Cf. Allow explicit specification of name import/export?

Input from Jane Hunter <jane@dstc.edu.au>:

Jane Hunter <jane@dstc.edu.au> to XML Schema Comments list on Fri, 12 May 2000 11:31:17 +1000

Here's MPEG-7's feedback to the current XML Schema Language WDs: http://archive.dstc.edu.au/mpeg7-ddl/issues.html

It's based on problems which have arisen during encodings of MPEG-7 Descriptors and Description Schemes. Examples of these can be found at: http://archive.dstc.edu.au/mpeg7-ddl/

In some cases there may be alternative methods for solving a problem, so we'd appreciate suggestions from the WG.

I'm going to be at WWW9 in Amsterdam next week so I'll be available to discuss any of these issues face-to-face then if any of the WG are interested.

LC-125. MIS-Managers: Extend last-call comment period?

Issue Class: B Locus: requirements Cluster: process Status: ok
Assigned to: Dave Hollander Originator: David RR Webber

Description

Should the last-call comment period be extended to allow comment by ebXML?

Interactions and Input

Input from David RR Webber <Gnosis_@compuserve.com>:

David RR Webber <Gnosis_@compuserve.com> to XML Schema Comments list on Fri, 12 May 2000 03:16:54 -0400

Group.

I'm reporting here direct from the lobby of the ebXML meeting in Brussels.

Some significant decisions have been made this week, and it is very clear that ebXML is one of the major potential users of XML Schema.

It is also clear that several of the potentially mission critical features required are either missing (support for ISO11179 datatypes) or unclearly defined in the current Schema draft.

Also - ebXML is very focused on providing sustainable and low-cost business solutions that are scalable to a global level.

Looking at this there are just too many issues with the current W3C Schema draft to make it viable.

Simply put - if I were asked today by an MIS Manager if I would recommend W3C Schema in its current form as the basis for a major new implementation I would emphatically have to say - NO.

I would there ask that the current period for the review of this release candidate be extended at least another 4 weeks to allow time for discussion of the issues relating specifically to support of the ebXML requirements, and that we develop a set of metrics that we can measure the suitability-to-task in the context of maintainability and use in a global eBusiness environment.

I will work on a draft of these today and post these tonight when I get back to the USA.

Actual Resolution

Formal response. Commentator concurs.

LC-126. complextype-groups: Content model of <complexType>

Issue Class: D Locus: structures Cluster: 12 content-models Status: ok
Assigned to: Henry Thompson Originator: Henry Thompson

Description

Should the content model for complexType be changed to require an explicit grouping element (sequence, choice, or all) instead of supplying an implicit choice when it has particles as children?

Interactions and Input

Cf. Can XML Schema define XSLT?

Cf. Clarify minOccur/maxOccur defaulting?

Input from ht@cogsci.ed.ac.uk (Henry S. Thompson):

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list on 12 May 2000 10:21:11 +0100

Currently this is as follows:

   <sequence>
    <choice>
     <element ref="facet" minOccurs="0" maxOccurs="unbounded"/>
     <group ref="particle" minOccurs="0" maxOccurs="unbounded"/>
    </choice>
    <group ref="attrDecls"/>
   </sequence>

where 'particle' is

  <group name="particle">
   <choice>
   <element name="element" type="localElement"/>
   <element name="group" type="groupRef"/>
   <element ref="all"/>
   <element ref="choice"/>
   <element ref="sequence"/>
   <element ref="any"/>
   </choice>
  </group>

I'd like to change this to

   <sequence>
    <choice>
     <element ref="facet" minOccurs="0" maxOccurs="unbounded"/>
     <group ref="explicitGroup"/>
    </choice>
    <group ref="attrDecls"/>
   </sequence>

where 'explicitGroup' is

  <group name="explicitGroup">
   <choice>
   <element name="group" type="groupRef"/>
   <element ref="all"/>
   <element ref="choice"/>
   <element ref="sequence"/>
   </choice>
  </group>

I think the defaulting of the wrapper is messy, confusing and is getting in our way: the increased clarity in requiring a single <all>, <choice> or <sequence> outweighs the extra verbosity.

The one potential problem is that people will have to learn to write e.g.

  <complexType name="paraContent" content="mixed">
   <choice minOccurs="0" maxOccurs="1">
    <element ref="emph"/>
    <element ref="strong"/>
     . . .
    </choice>
   </complexType>

for backward-compatible mixed content.

Actual Resolution

Discussed in call of 2000-06-23.

Possible resolutions include:

  • status quo (do nothing)
  • make the top-level grouping default to sequence both when content="elementOnly" and when content="mixed"
  • make the top-level grouping default to sequence when content = 'elementOnly', but no default when content='mixed'
  • remove the defaults entirely and require an explicit top-level grouping

It was observed that if there is only one child, the fourth option will require that it be a one-item sequence or a one-item choice.

A straw poll showed no support at all for the status quo, and some tolerance, but no preference, for making sequence the default for both element-only and mixed content. As between the third and fourth choices, there was approximately equal preference for each, but greater toleration (more 'can-live-with' votes) for the fourth, on which the chair accordingly put the formal question. RESOLVED: to remove all defaulting in the association between XML representation of content models and the schema component, and make the relevant portion of the content model of complexType read (choice | all | seq | grpref)? Dissenting: Beech.

Rationale (supplied post hoc by chair): the conditional defaulting rules, though intended to simplify life for schema authors and readers by making the markup load lighter, have the opposite effect: they are confusing and simply make schema writing and reading more error-prone. Implicit grouping elements are (in the view of some though not all WG members) useful to some users, just as end-tag omission is. But like end-tag omission, their cost in confusion to new and occasional users outweighs their advantages to frequent users. Removing the defaults simplifies the spec, makes it unnecessary for readers to learn and understand the defaulting rules, and makes schemas easier to read and write and less prone to mistakes caused by misunderstanding the default rules.

Commentator confirms that the resolution of the issue is acceptable.

LC-127. error-flags: Error logging in the infoset

Issue Class: D Locus: structures Cluster: 11 infoset Status: ok
Assigned to: Henry Thompson Originator: Henry Thompson

Description

Shall the post-schema-validation info set have properties to carry information about schema-validation errors (i.e. to identify all the different ways a document, subtree, element, attribute, or other construct can fail to be schema-valid)?

Interactions and Input

Input from ht@cogsci.ed.ac.uk (Henry S. Thompson):

To: www-xml-schema-comments@w3.org From: ht@cogsci.ed.ac.uk (Henry S. Thompson) Date: 12 May 2000 10:24:21 +0100 Message-ID: <f5bsnvoi0je.fsf@cogsci.ed.ac.uk> Subject: Error logging in the infoset

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list on 12 May 2000 10:24:21 +0100

Pursuant to our decision in Berkeley to allow the editors the option to systematise and tabulate 'errors', the next internal draft will contain a table of ways to lose and explicit short identifiers for all of them. I'd like to add a post-schema-validation infoset property associated with element and attribute infoitems which records these when appropriate.

Actual Resolution

Discussed in call of 2000-06-15.

RESOLVED: to add a property to the PSV infoset with the characteristics described: if the subtree is not schema-valid, and the processor identifies the cause with one of the identified error codes, then the processor may optionally record the reason by placing the appropriate error code in the new property -- errors in the schema currently being used for validation are not addressed by this proposal, although an analogous property might be added to any schema-info-set that results from our action on LC-162 and LC-198. Dissenting: Beech.

Commentator confirms that resolution is acceptable.

LC-128. type-modification: Lee Buck's use case returns: a hesitant proposal for type modification

Issue Class: D Locus: structures Cluster: 31 modules Status: ok
Assigned to: Lee Buck Originator: Henry Thompson

Description

Should XML Schema be modified so as to allow module users to redeclare types, named model groups, and named attribute groups, by providing the modified definition within the schema import or include element? This might make modules easier to use.

  • allow circular

Interactions and Input

Input from ht@cogsci.ed.ac.uk (Henry S. Thompson):

ht@cogsci.ed.ac.uk (Henry S. Thompson) to XML Schema Comments list on 12 May 2000 10:40:26 +0100

Someone recently observed to me that we don't explicitly rule out circular type definition. We certainly should, but I wonder if we should consider a carefully controlled exception to this, and to the no redefinition/redeclaration rule: You can redefine or redeclare imported or included components inside the include/import element, and only there. Furthermore, such redefinitions may be circular in the case of types, named model groups and attribute groups, and all such redefinitions are retrospective, i.e. they effect the included/imported components which reference those definitions.

Simple example

schema1.xsd

  <schema xmlns='http://www.w3.org/1999/XMLSchema'
          targetNamespace='http:///www.example.com/stuff'
          xmlns:m='http:///www.example.com/stuff'>
   <complexType name="personName">
     <sequence>
      <element name="forename"/>
      <element name="middle" minOccurs="0" maxOccurs="unbounded"/>
      <element name="surname"/>
     </sequence>
    </complexType>

    <element name="person" type="m:personName"/>

    <element name="record">
     <complexType>
      <sequence>
        <element ref="m:person"/>
        <element name="position">...</element>
        ...
      </sequence>
     </complexType>
    </element>
   </schema>

schema2.xsd

  <schema xmlns='http://www.w3.org/1999/XMLSchema'
          targetNamespace='http:///www.example.com/stuff'>
    <include "schema1.xsd">
      <complexType name="personName" base="m:personName"
                   derivedBy="extension"/>
        <element name="genMark" minOccurs="0"/>
      </complexType>
    </include>
   </schema>

Documents using schema2 for the http:///www.example.com/stuff would be able to have <genMark> as a daughter of <person> in their <record>s, whereas those using schema1 would not.

I certainly haven't thought through all the ramifications of this, but if we want to do anything at all to allow ourselves to reuse our own work, this is the best thing I've thought of.

Actual Resolution

Discussed in call of 2000-07-06.

The question is on the proposal to support light-weight modifications when including. HT has clarified that this is only for modifications, not for arbitrary replacements of the definition.

The chair proposed to discuss this for a few minutes, to see whether consensus exists; if not, he proposed, we should then take the discusion to email. The WG agreed.

The WG discussed the proposal without reaching any clear conclusion. One point of concern was the sense that a type derivation that does not generate a new type but modifies the old one in place is tricky and dangerous, and possibly inconsistent with our other practice. Some WG members suggested that this trickiness is inherent in the use case; others denied this claim.

Another point of concern was that we need to ensure that there is a clear definition of the rules for handling multiple includes.

It seems plausible to allow such in-place modification to apply to simple types, probably only for user-defined simple types. It is an open question whether changing to a list type should be allowed or not.

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

Discussion had produced two variants of a modifying include, which (in the chair's analysis) varied in two ways:

  • derive new T from old T
  • derive [actually, define] new T ignoring old T
  • must be same namespace
  • may be same namespace
  • must not be same namespace

In neither variant is the old type T available in any sense. In the resulting type lattice, the old type is pruned. Depending on where we end up on second point, we may or may not want to use the term 'include'. We do not currently have any mechanism to do this when the namespaces are different.

A straw poll showed a strong majority (16 to 4, with two abstentions) in favor of adopting some proposal similar to those on the table.

A use case was described, in order to clarify the namespace implications of the proposals. Imagine a user has a schema, using XHTML stuff, but wants to change so that XHTML elements in the user's documents have a certain extra required attribute. On the "must not be in same namespace" account, the user can do this. On the "must be same namespace" account the user can do it, but only by writing your own schema for XHTML namespace and importing it. A second use case is the one described to us by the definers of XHTML, who want to have conditions of the form "When you you have this module, you get this attribute." A third use case: defining v2 of XML Schema.

Some WG members urged caution: this is a piece of versioning, and we want to be careful not to get in way of a full story later. Some preferred to see the new type T derived from the old type T because it solves the use case while preserving important invariants with respect to derived types. It doesn't preclude us from going to the other option in due course; leveraging existing mechanisms is the right way to proceed cautiously. Other WG members felt that anything we do, including nothing, is risky. Some proposed to make it a priority feedback item.

A problem arose: If we derive the new type T from the old type T, we have said the old T effectively disappears. So if the old T was derived from Q by restriction and the new T is derived by extension, we have a problem: we can't go from Q to the new T in one step without losing our normal constraints on the abstract component set. The consensus appeared to be that an anonymous type identical to the old T, which is the type of nothing in the schema, continues to exist in the type lattice.

Question: if I had a type S derived from the old T, and I derive a new T such that type S breaks, what happens? A: Yes, it breaks, just as if you did it by cut and paste in original schema.

A straw poll showed a very strong preponderance of opinion (19 to one, with four abstentions) in favor of deriving the new type T from the old type T.

The WG discussed the namespace question. Some WG members preferred to require that the two schema documents apply to the same namespace, in part because the mechanism could not otherwise be used for developing complex languages like XHTML and in part because it felt "more honest" in owning up to the fact that the author of the second schema document is changing someone else's namespace. Others felt it was "more honest" if the namespaces were required to be different, and that the XHTML use case relies on bad practice, which should not be encouraged. Still others felt that it was wrong to assume (as both 'honesty' arguments do) that the authors of the two schema documents are different people, and that the modular design of XHTML represents good practice, not bad practice, and must be supported.

A straw poll showed majority support (12 to 4 to 5, with one abstention) for requiring that the two schema documents involved in a modifying-include relationship define the same namespace.

The WG then discussed what to call the resulting construct; proposals i