[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: DOM AS and RELAX?
The language dependency is mainly towards DTDs with a tiny bit XML Schema. It is not mainly a XML Schema contra RELAX NG thing that I'm concerned about. My main concern are the parts related to modification of schemas and their impact on the whole design. What is discomforting is that something called Abstract Schemas has constants, methods and attributes that gives the impression of being a union of known schema constructs rather than the intersection. I give one example below. If you can convince me that my fears are mistaken I'll be happy to accept the spec. <example> interface ASContentModel : ASObject { const unsigned long AS_UNBOUNDED = MAX_VALUE; // ASContentModelType const unsigned short AS_SEQUENCE = 0; const unsigned short AS_CHOICE = 1; const unsigned short AS_ALL = 2; const unsigned short AS_NONE = 3; const unsigned short AS_UNDEFINED = 4; attribute unsigned short listOperator; attribute unsigned long minOccurs; attribute unsigned long maxOccurs; attribute ASObjectList subModels; void removesubModel(in ASObject oldObject); ASObject insertBeforeSubModel(in ASObject newObject, in ASObject refObject) raises(ASException); unsigned long appendsubModel(in ASObject newObject) raises(ASException); }; AS_ALL This content model represents a simplified version of the SGML &-Connector and is limited to the top-level of any content model. No element in the content model may appear more than once. Please refer to the definition element-all. AS_CHOICE This constant value signifies a choice operator. For example, in a DTD, this would be the '|' operator. AS_NONE Neither a choice nor sequence operator. AS_SEQUENCE This constant value signifies a sequence operator. For example, in a DTD, this would be the ',' operator. AS_UNDEFINED This content model is undefined, and is associated with incomplete element declarations in the ASModel, meaning elements implicitly declared through an attribute list but without any corresponding element declarations. </example>. The specified types of content models are a union of the ones for DTDs and XML Schema. In DTDs we have AS_CHOICE and AS_SEQUENCE. XML Schema has these and adds AS_ALL. As far as I can see some patterns that are available in RELAX NG such as interleave can not be supported. I don't believe in the idea of modifying schemas through a common interface. I do still think there is a need for a common interface for invoking schema validation on a Document or Node. Apart from RELAX NG having a problem with this DTD centric model I can't say that it's obvious how a Schematron based schema would fit into the model either. The one common thing among the different schemas, except for possibly some setup methods, is the possibility to implement: boolean verify(Node node); I think that AS should not bother with modifying scehmas at all. It should concentrate on how to specify what schema should be used, how to load it if necessary, and how to set validation properties that the chosen schema might support and how to validate a Node or Document using it. Basically drop the following Use cases and requirements from the draft together with all the functionality related to them. These use cases can only be properly implemented in a way specific to each schema tecnology. <drop> Use Cases: ASU1. Clone/map all or parts of an existing abstract schema to a new or existing abstract schema. ASU2. Save an abstract schema in a separate file. For example, if a DTD can be broken up into reusable pieces, which are then brought in via entity references, these can then be saved in a separate file. Note that a DTD, which may include both an internal and external subset, would be an example of an abstract schema. ASU3. Modify an existing abstract schema. ASU4. Create a new abstract schema. Requirements: ASR1. View and modify all parts of the abstract schema. ASR2. Validate the abstract schema itself. ASR3. Serialize the abstract schema. ASR4. Clone all or parts of an existing abstract schema. ASR5. Create a new abstract schema object. </drop> The only need I can see for editing schema models through the DOM is for editing an internal DTD subset. I would say that this is far away from the golden 80/20 rule for today's usage and getting further and further away as internal subsets get less and less usage (I don't really have anything more than my gut feeling to back this up). By the way, when scraping these from the requirements list be careful not to remove: ASR6. Validate portions of the XML document against the abstract schema. IMO it is listed in the wrong list since it has nothing to do with schema editing. I'm afraid I might not have made my self totally clear, but hopefully we should be able to clarify things along the way in the usual xml-dev spirit. /Fredrik Lindgren Mike Champion wrote: > 3/28/2002 1:06:46 PM, Fredrik Lindgren <fredrik.lindgren@c...> wrote: > > >>A language neutral variant >>should probably be added to the DOM as well, instead of the mess (IMHO) >>that is specified in Document Object Model (DOM) Level 3 Abstract >>Schemas and Load and Save Specification [2]. >> > > Where are the XSD dependencies that you imply? > What would a language neutral variant look like? This is the > time to point them out! > > Concrete suggestions for how the DOM AS module could be cleaned up to > better support RELAX NG would be much appreciated ... that is a use > case for AS, as far as some are concerned anyway. > > > > > > ----------------------------------------------------------------- > The xml-dev list is sponsored by XML.org <http://www.xml.org>, an > initiative of OASIS <http://www.oasis-open.org> > > The list archives are at http://lists.xml.org/archives/xml-dev/ > > To subscribe or unsubscribe from this list use the subscription > manager: <http://lists.xml.org/ob/adm.pl> > >
|
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
|