[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Evaluation Criteria for Markup Languages
- From: "Costello, Roger L." <costello@mitre.org>
- To: "xml-dev@lists.xml.org" <xml-dev@lists.xml.org>
- Date: Sun, 28 Aug 2011 18:17:58 -0400
Hi Folks,
I propose the following two criteria for evaluating XML markup languages.
-------------------
Criterion #1
-------------------
Markup languages must clearly distinguish between:
- Markup for expressing individual concepts, i.e., markup combinators.
- Mechanisms for combining markup combinators. When markup is combined, the meaning of the combined markup must be specified.
Analogy: each digit 0 - 9 expresses an individual, well-defined concept. The digits may be juxtaposed and the meaning of the combined digits is well-defined. Thus, each digit is a digit combinator and juxtaposition is the mechanism for combining them.
Example: XML Schema does a good job with this criterion. For example, xs:element is clearly markup for expressing individual concepts, and xs:sequence is clearly a mechanism for combining them. The meaning of the combined elements is that they possess a sequential ordering.
Example: The Extensible Business Reporting Language (XBRL) does a fantastic job of separating markup combinators from the mechanisms for combining them. In XBRL the markup combinators are defined in an XML Schema and the mechanisms for combining them are specified in a separate XLink document.
-------------------
Criterion #2
-------------------
The rules defined in markup languages must be general. Scientists and mathematicians are never satisfied with principles or theorems that apply in only some cases. They seek general rules. So too, markup language designers must seek general rules for combining markup. Rules that apply only some of the time--that is, rules with exceptions--must be avoided.
Example: XML Schema does not do well with this criterion. Many of its rules have exceptions. Here are examples of rules with exceptions:
Rule: a xs:sequence contains any xs:elements.
Exception: if two xs:elements have the same name but different data types then they cannot both be in xs:sequence.
Rule: The value of the base attribute in <xs:extension base="..."> must reference a xs:complexType.
Exception: if the parent of xs:extension is xs:simpleContent then the value of the base attribute may reference either a xs:complexType or a xs:simpleType.
John Cowan reports that XML Schema has nearly 100 rules with exceptions. These make the language difficult to use and understand.
Comments?
/Roger
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]