[XML-DEV Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: DTDs don't have ID or IDREF elements so why does XMLSchema
- From: Pete Cordell <pete++xmldev@codalogic.com>
- To: Michael Kay <mike@saxonica.com>, Peter Flynn <peter@s...>
- Date: Wed, 2 Mar 2022 17:43:09 +0000
On 02/03/2022 11:25, Michael Kay wrote:
> XPath 1.0 allowed you to write -1 < 0 < +1, and the result
> is false (because -1 < 0 is true, and true < 1 is false). XPath 2.0
> disallowed that;
This seems like over-zealous implicit conversion from one type to
another (Boolean to integer or integer to Boolean). It causes a lot of
problems in languages like C++. But I think it is an issue orthogonal
to orthogonality ;)
Pete.
--
---------------------------------------------------------------------
Pete Cordell
Codalogic Ltd
Read & write XML in C++, http://www.xml2cpp.com
---------------------------------------------------------------------
Orthogonality in my view trumps having no use case.
There's no use case for multiplying by one; but orthogonality (or "no
needless restrictions") says the lack of a use case is not a reason to
disallow it.
The concept of preventing you doing something because the language
designers didn't think it was a sensible thing to do was known in the
schema WG as "paternalism". An example of paternalism would be to
disallow --1 (minus minus one) in XPath; or in regular expressions, to
disallow overlapping ranges [a-zi-k]. In my view, a rule that exists
solely in order to prevent you doing something that's well-defined but
useless is usually a bad rule. Another example is the rule that concat()
must have at least two arguments: I think that's a thoroughly bad rule.
If you demand a use case, I could talk about code generation; but I
don't think it does demand a use case.
Of course there's a very fine line between paternalism and things like
type-checking rules that are designed to protect programmers from their
own errors. XPath 1.0 allowed you to write -1 < 0 < +1, and the result
is false (because -1 < 0 is true, and true < 1 is false). XPath 2.0
disallowed that; a restriction that prevents you falling into an
elephant trap isn't the same as a restriction that stops you writing
expressions that aren't useful. But XPath 2.0 doesn't stop you writing
@x/@y: that's justified by orthogonality, but it's almost certainly a
mistake. I think we should have made that a type error.
I'm rambling: Bottom line, I think:
(a) Don't sacrifice orthogonality (introduce restrictions) just because
something has no known use case
(b) But do (sometimes) sacrifice orthogonality to stop users falling
into elephant traps.
Michael Kay
Saxonica
On 2 Mar 2022, at 10:55, Peter Flynn <peter@silmaril.ie
<mailto:peter@silmaril.ie>> wrote:
On 01/03/2022 23:52, Michael Kay wrote:
Orthogonality, or to put it another way, avoiding arbitrary
restrictions. If ID and IDREF are going to be among your set of data
types, then why would you want to disallow people from using them on
elements.
It's part of the way some people view XML. I struggle to find any use
case for using ID or IDREF on elements. In fact, I would argue that
adding an ID or IDREF attribute to an element type *is* "using it on
elements".
(Personally, I would have made "IDness" and "IDREFness" properties
that are orthogonal to type. I can't see any good reason for
disallowing IDs of type integer or date.
If we accept IDs must be unique within the document, I have
encountered many reasons, such as "integers" that aren't (ie leading
zeroes), and dates that turn out later to need multiple occurrences.
But the SGML and DTD legacy weighed strongly on the XSD designers.)
I am very glad they did.
Peter
On 1 Mar 2022, at 23:32, Roger L Costello <costello@mitre.org
<mailto:costello@mitre.org>> wrote:
Hi Folks,
DTD only allows attributes to be of type ID and IDREF.
XML Schema allows both attributes and elements to be of type ID and
IDREF. Why? Is there a compelling use case for declaring an element
to be of type ID? Is there a compelling use case for declaring an
element to be of type IDREF?
/Roger
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.
[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
<http://www.oasis-open.org/mlmanage/>
Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
<mailto:xml-dev-unsubscribe@lists.xml.org>
subscribe: xml-dev-subscribe@lists.xml.org
<mailto:xml-dev-subscribe@lists.xml.org>
List archive: http://lists.xml.org/archives/xml-dev/
<http://lists.xml.org/archives/xml-dev/>
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
<http://www.oasis-open.org/maillists/guidelines.php>
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.
[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
<http://www.oasis-open.org/mlmanage/>
Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
<mailto:xml-dev-unsubscribe@lists.xml.org>
subscribe: xml-dev-subscribe@lists.xml.org
<mailto:xml-dev-subscribe@lists.xml.org>
List archive: http://lists.xml.org/archives/xml-dev/
<http://lists.xml.org/archives/xml-dev/>
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
<http://www.oasis-open.org/maillists/guidelines.php>
--
Peter Flynn
Cork 🇮🇪 Ireland 🇪🇺
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.
[Un]Subscribe/change address:http://www.oasis-open.org/mlmanage/
<http://www.oasis-open.org/mlmanage/>
Or unsubscribe:xml-dev-unsubscribe@lists.xml.org
<mailto:xml-dev-unsubscribe@lists.xml.org>
subscribe:xml-dev-subscribe@lists.xml.org
<mailto:xml-dev-subscribe@lists.xml.org>
List archive:http://lists.xml.org/archives/xml-dev/
<http://lists.xml.org/archives/xml-dev/>
List Guidelines:http://www.oasis-open.org/maillists/guidelines.php
<http://www.oasis-open.org/maillists/guidelines.php>
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS to
support XML implementation and development. To minimize spam in the
archives, you must subscribe before posting. [Un]Subscribe/change
address: http://www.oasis-open.org/mlmanage/ Or unsubscribe:
xml-dev-unsubscribe@lists.xml.org subscribe:
xml-dev-subscribe@lists.xml.org List archive:
http://lists.xml.org/archives/xml-dev/ List Guidelines:
http://www.oasis-open.org/maillists/guidelines.php
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|
Stylus Studio has published XML-DEV in RSS and ATOM formats,
enabling users to easily subcribe to the list from their preferred news reader application.
|
Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website.
they were not included by the author in the initial post. To view the content without the Sponsor Links please
click here.
|
|