- From: Stefan Haustein <stefan.haustein@trantor.de>
- Date: Sun, 30 Jan 2000 21:31:27 +0100
- To: xml-schema-comments <www-xml-schema-comments@w3c.org>
Hi! I am currently implementing an XML schema parser. My main problem is that data types and types are referenced using the same attribute "type": If I encouter a forward reference to a type definition, I create a reference to an empty type definition object. The type definiton object is filled later when the parser reads the real definiton. But I am not sure if forward references to datatypes are allowed, too. If so, I would need to handle the forward referenced much more complicated since datatype and type definitions are different objects -- I would not know which one to create. Also, having a type and separate datatype could solve a problem described by Roger Costello in XML dev, see below. My second problem is the content model (in general). A posting from Nils Klarlund in XML-DEV shows a solution that seems very nice. I appended his quoted message, too. Best regards Stefan Roger Costello wrote: > > Hi Folks, > > I have created an XML Schema document for juice machines. Part of the > description of each juice machine is its cost. One of the first things > that I did is create a money datatype: > > <datatype name="money" source="decimal"> > <scale value="2"/> > </datatype> > > Then, I declared the cost element to be of type money: > > <element name="cost" type="money"/> > > Seems reasonable, right? Well, the next thing that I wanted to do was > to add an attribute - currency - to the cost element. This is where I > ran into problems. Attributes are typically declared like this: > > <element name="cost"> > <type> > <attribute name="currency" type="string" minOccurs="1"/> > <type> > </element> > > This declares currency to be a required attribute of cost. However, in > adding this attribute, we have lost our nice typing of cost to money > (i.e., cost of datatype money). > > Unless I am missing something obvious (which may well be the case), > there is no way to specify a datatype for an element as well as assign > attributes to it ... I must not be thinking clearly. Can someone tell > me how to assign cost the datatype money as well as giving it the > attribute currency? To provide more context to my question, I have > included below the complete XML Schema which I am trying to enhance to > give cost the attribute currency. /Roger > Nils Klarlund wrote: > > I am not qualified to comment on SGML itself, but even XML 1.0 does > appear to be suffering from over-conceptualization (too many concepts > that don't fit together too precisely). As a simple example, look at > content models: > > - a content model is not a model for content in general, but only two > kinds of content, namely elements and character data, not processing > instructions and not comments (incidentally, it could have been > termed "markup model" as well I think, since markup is a more > general concept than content) > > - the content model concept is further split into two concepts: > > (1) element content, which allows only elements in content > (2) mixed content, which allows character data interspersed > with elements > > Thus, there are now two similar sets of syntax and regular expressions > for describing not content, but the projection of content onto > elements and character data. > > An alternative approach would have declared "content" to simply > consist of just element nodes and text nodes ("text nodes" as in > XPATH) representing character data. Then there would be no need for > (2), since a content model now describes a regular language over the > alphabet consisting of what you would expect: element names and the > token text() (or #PCDATA). And, you'd be able to describe, say, HTML > with Appendix elements that must appear at the end: > > ((#PCDATA | H1 | H2 |...)*, Appendix*) > > So, the distinction between element content and mixed content is a > needless one that both restricts what can be expressed and that > muddles the conceptual framework. (The way of treating content just > outlined is what we chose for the DSD schema notation, incidentally.) > > XPATH with its tree model goes a far way in clearing up things; so > does DOM2, but the crown unifying these not-quite-compatible models is > missing. > > /Nils
Received on Sunday, 30 January 2000 15:28:45 UTC