This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 5875 - longName for elements, attributes and model groups
Summary: longName for elements, attributes and model groups
Status: RESOLVED DUPLICATE of bug 5880
Alias: None
Product: XML Schema
Classification: Unclassified
Component: Structures: XSD Part 1 (show other bugs)
Version: 1.0/1.1 both
Hardware: PC Windows XP
: P2 normal
Target Milestone: ---
Assignee: C. M. Sperberg-McQueen
QA Contact: XML Schema comments list
URL:
Whiteboard:
Keywords: resolved
Depends on:
Blocks:
 
Reported: 2008-07-18 09:46 UTC by Pete Cordell
Modified: 2008-08-04 20:06 UTC (History)
1 user (show)

See Also:


Attachments

Description Pete Cordell 2008-07-18 09:46:10 UTC
XMLs descriptive nature is often in conflict with on-the-wire brevity.  Additionally while the descriptiveness is often useful to those new to a vocabulary, experts in a field often develop abbreviations for those things they refer to frequently, and often verbosity is unhelpful for the experts.  It would be helpful if XML schema could cater for both audiences, and this presents a dichotomy for vocabulary designers.

For example, in the H.323 voice of IP protocol there is something called a "TerminalCapabilitySet", but most experts in the field will call it a "TCS".  When defining a schema for this you have a choice of the XML instance being:

    <ns:TerminalCapabilitySet>...

or:

    <ns:tcs>...

In many respects the latter has advantages because it reduces the size of the XML, is easier to type text messages, arguably easier to read and is also in the language that the experts use.  However, when defining an element in schema such as:

    <xs:element name='tcs'...

is not particularly helpful to those learning a vocabulary, and in this case the longer name would be helpful.

Therefore it is proposed that elements, attributes and also model groups (see later) have added to them a "longName" component.  This would be an optional NCName that could be more descriptive than the "name" component.  Thus the above definition woul appear as:

    <xs:element name='tcs' longName='TerminalCapabilitySet'...

(Note that the XML instance in this case would always be <ns:tcs> and never <ns:TerminalCapabilitySet>.)

It might be suggested that such a long name could be included in the xs:documentation.  However, it helps a human schema reader to have such information in a particular place.  It can be used to suggest to developers variable/class names in software so that someone looking at the schema can have a good idea what to look for in the code to see how a particular feature is implemented.  It can also be helpful for software tools to have a specific XML schema component containing a long name that they can use it as a more descriptive name than the regular name.

I mentioned including longName in model groups.  A number of software tools, such as data binding tools turn anonymous model groups into classes; for which they need a name.  Currently this has to be derived using some heuristic rules, or the user has to define one.  This is obviously less than ideal.  If a model group had a longName, in addition to providing some description to a user, it would enable the software to avoid such heuristics.

I think this addition is very easy to add.  Just add it to the XML Representation Summary and XML Mapping Summary for elements, attributes and model groups.  It has no effect on other aspects of schema.  

In fact it's so orthogonal I've listed it as a change to both XSD 1.0 and 1.1 in the hope it can be added to XSD 1.0 in some future revision. 

Thanks.
Comment 1 David Ezell 2008-08-04 16:41:08 UTC
Dear Mr. Cordell:
Thanks very much for your interest and input on our spec (this isn't boilerplate, promise).  We sincerely appreciate your comments.

The WG discussed this issue on 2008-08-01 and came to the following conclusions:

1) the primary issue you raise is very similar to one brought out by i18n and that is being tracked in bug 5880.  The WG proposes to retire this bug (5875) and track the alternative naming requirement in general (bug 5880). 

2) the WG invites you to raise the secondary issue implied - i.e. the naming of anonymous types - as a separate issue.

Therefore we are closing this bug as a duplicate of 5880, and deferring discussion of the naming of anonymous types until later.

Thank you.

*** This bug has been marked as a duplicate of bug 5880 ***
Comment 2 C. M. Sperberg-McQueen 2008-08-04 20:06:39 UTC
There may be a typo or slip in comment #1: the secondary issue
which some in the WG thought could and should be separated and
tracked separately related to the naming of model groups, rather
than anonymous types.  (Although now that I think about it, I
assume that the same considerations apply to anonymous types as
well as to model groups.)  That is: we mean the last three 
paragraphs of the issue description.