XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
+ Stylus Studio Technical Forum (14621)
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2016)
+ Stylus Studio FAQs (159)
- Stylus Studio Code Samples & Utilities (364)
-> + XSD to XML Creation with all O... (2)
-> - How XML to X12 be converted an... (1)
-> - Encode and decode XML to and f... (1)
-> + Evaluating StylusStudio - .cnv... (2)
-> - Build safe NCName (1)
-> - generating .Net dataset (1)
-> + Converters for .NET (2)
-> + TRADACOMS - Code Generation (2)
-> - Flat File Custom XML conversio... (1)
-> - Need help in Generate a checkb... (1)
-> + Evaluation period for the buil... (2)
-> + Reports with ifs (2)
-> + Need Help Creating Custom XML ... (6)
-> + Need help with unique particle... (10)
-> + In need for help on converting... (3)
-> - import xml into an access (1)
-> + jaxb support (3)
-> + Large XML sample file (2)
-> + Stylus Studio 2008 R2 - From X... (2)
-> + create an xml document with ex... (2)
-> + Default xml converter from com... (2)
-> + Transforming Data With XSLT (5)
-> + Error when creating pdf file (5)
-> + Got Shkespear XML Doc from web... (3)
-> + VFP 8 (2)
-> + CSV import (7)
-> + Generating X12 from XML (4)
-> + How to handle variable input &... (2)
-> + Grab html to xml (2)
-> + XML To X12 conversion using in... (3)
-> + XSLT mapping help required (2)
-> + convert XML to JAVA (2)
-> + Insert a carriage return or li... (3)
-> + Automatation for comparing two... (2)
-> - Filter records (1)
-> + BIT Fields (3)
-> - Restricted Mixed Content (4)
-> ->Restricted Mixed Content
-> ->Restricted Mixed Content
-> ->Restricted Mixed Content
-> - Freelance Project - Mapping di... (1)
-> + flat file to xml conversion (10)
-> + ConvertFromXML to TXT (2)
-> + Edi X12 835 to Flat file (2)
-> + License problem (2)
-> + Removal of elements from an XM... (3)
-> + XSL and Word docs (2)
-> + Develop a workflow using xml (2)
-> + Need help converting CSV to Ne... (2)
-> + Specify valid values for an el... (3)
-> + Question about the WYSIWYG fun... (2)
-> + XML diff tool (4)
-> + Validating schemas (3)
-> + Best way to fix a few hundred ... (6)
-> + Mapping problem please help me (2)
-> + Relational Database Hierarchic... (2)
-> + RDBMS - XML round-tripping (3)
-> + Converto FILE to XML (2)
-> - relational database acces - lo... (1)
-> + unsupportet URL scheme when tr... (6)
-> + XML in oil industry (3)
-> - Want to get the available para... (1)
-> + XSL in HTML? (9)
-> + Help Creating a new wsdl (2)
-> + Extracting XML from a database... (6)
-> + Stylus Studio Converters comma... (18)
-> - Schema for RDF section within ... (1)
-> + Text to XML converter not in t... (4)
-> + Filtering data with a combo bo... (2)
-> + Loading data in XML file/docum... (2)
-> + Stylus StudioŽ's Web Service C... (2)
-> - How to replace a specific node... (1)
-> + xsl:result-document and multip... (2)
-> - Russian Doll Schema (1)
-> + Populating MS access from XML ... (9)
-> + xsd to xml (5)
-> + populating treeview control wi... (6)
-> + Problem generating a simple DT... (4)
-> + XML Newbie Basics (4)
-> + How do I ... Build an HTML Pag... (2)
-> + .NET API (6)
-> - Building Your Own Search Engin... (1)
-> - transformer.transform gives Ex... (1)
-> + reading xml (6)
-> + How to Display Links in XML (4)
-> - how to place the text of the f... (1)
-> + Need guidelines (3)
-> + Basic XML question (2)
-> + sql/xml returns invalid result... (2)
-> + SQL/XML Error (4)
-> - pass paramter in java and do a... (1)
-> + serialize java (2)
-> + pass paramter in java for xml ... (2)
-> + transform dtd to xml schema (2)
-> + Converter - xsd to xml (7)
-> + Convert to XML programmaticall... (2)
-> + XSL FO with Java data source (2)
-> - OASIS XML Catalogs Tutorial (1)
-> + Transforming XML to EDI (2)
-> + Using row data to populate XML... (7)
-> + Nesting Tables and Sub-Tables (2)
-> + XSL for multiple columns and c... (5)
-> + New Advanced CSV to XML Data C... (3)
-> - Java mapper (1)
-> - XML Spy project conversion to ... (1)
-> + APIs and OCXs (2)
-> + No Topic (2)
-> + Profiling (3)
-> + xsl to xslfo (5)
-> + Does anyone use XML from ADO ... (5)
-> - XML from ADO Wizard (1)
-> + Weird XQuery results? (3)
-> - XSV xml schema validator (1)
-> + Menu structure (2)
-> + XQuery user-defined functions (2)
-> + Passing Parameter to Templates (3)
-> + XML To Database (2)
-> + XML Schema xsd:any and xsd:any... (2)
-> - XSL-FO Webinar Sample Files (1)
-> + Name Element (2)
-> + date of the day (5)
-> + Is there a 'Find Definition' f... (2)
-> + DTD to schema conversion (2)
-> + Simple XSLFO Example (3)
-> - Post your favorite Stylesheet ... (1)
-- [1-20] [21-40] [41-60] Next
+ Stylus Studio Announcements (113)
Topic  
Postnext
Daniel PontzerSubject: Restricted Mixed Content
Author: Daniel Pontzer
Date: 28 Feb 2008 05:15 PM
Is there anyway in schema to define an element such that each of the following is legal:

a scalar:
<data>1</data>

or a vector:
<data>1 2 3 4</data>

or a vector of vectors:
<data><cell>1 2 3</cell>
<cell>34</cell>
<cell>15 23 23 15 67</cell>
</data>

in other words, I want mixed content but it should either be text or elements ... can't have both simultaneously.

Thanks
Dan Pontzer

Postnext
(Deleted User) Subject: Restricted Mixed Content
Author: (Deleted User)
Date: 29 Feb 2008 02:14 AM
Hi Daniel,
unless the two versions of <data> occur inside different elements, you cannot have two definitions for the same element name. You could allow both contents as optional, but in this case you would not be able to avoid to have both forms at the same time (or none)

Hope this helps,
Alberto

Postnext
Daniel PontzerSubject: Restricted Mixed Content
Author: Daniel Pontzer
Date: 29 Feb 2008 08:23 AM
Thanks, Alberto, for your prompt response ... if not obvious, my interest was in backward compatibility. In my business, as our target hardware gets more complicated, parameters that were once simple tend to take on more 'dimensionality'. I'd like to be able to support old and new versions of those parameters so old versions of the XML file don't have to be updated to work in the new environment. Can you provide guidance or point me to any white paper that might cover this topic? I'd hate to modify to schema to handle a new element that is in parallel to the original 'data' because that would be distasteful from the perspective of naming the new element since it is essentially the same parameter as the original except that it has gained a dimension. I would analogize this problem to that solved by an overloaded function call that can take on any of N different types of argument lists. Is there no equivalent capability in XML Schema?

Thanks,
Dan Pontzer
(attempting to drag my colleges into the 21st century ... we're way behind the times as far as use of XML goes. The moment I learned about XML (just last year) I saw its practicality and wondered why our software department hasn't been promoting its use. Mostly we do embedded software so were not so 'up to speed' on web stuff which is where XML came from, of course, but its practicality is so far ranging outside of the web)

Posttop
(Deleted User) Subject: Restricted Mixed Content
Author: (Deleted User)
Date: 29 Feb 2008 09:13 AM
Hi Daniel,
you can design a schema that allows the first two options, like in

<xs:simpleType name="vector">
<xs:list itemType="xs:int"/>
</xs:simpleType>
<xs:element name="data" type="vector"/>

or one that validates the last one

<xs:simpleType name="vector">
<xs:list itemType="xs:int"/>
</xs:simpleType>
<xs:element name="cell" type="vector"/>
<xs:element name="data">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="cell"/>
</xs:sequence>
</xs:complexType>
</xs:element>

But in order to have a definition to match both cases, you could add a mixed="true" to the xs:complexType definition, but this would allow any text between the <cell> elements (without checking if they are one or more numbers).
Another attempts could be extending the "vector" type with child nodes:

<xs:element name="data">
<xs:complexType>
<xs:complexContent>
<xs:extension base="vector">
<xs:sequence>

but this is not valid XMLSchema (see thread on http://lists.w3.org/Archives/Public/xmlschema-dev/2001Jan/thread.html#msg67 for the reasons why this has been prohibited).
Or you could try making a choice between the two forms:

<xs:element name="root">
<xs:complexType>
<xs:choice>
<xs:element name="data" type="vector"/>
<xs:element name="data" type="vectorOfVectors"/>
</xs:choice>
</xs:complexType>
</xs:element>

but this grammar would be invalid as there cannot be two elements with the same name but different types in the same scope.

The only valid alternative would be to require each <data> element in the XML to have an xsi:type attribute to signal which type should be used to validate it:

<xs:element name="root">
<xs:complexType>
<xs:choice>
<xs:element name="data" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
</xs:element>

<xs:simpleType name="vector">
<xs:list itemType="xs:int"/>
</xs:simpleType>
<xs:complexType name="vector3d">
<xs:sequence>
<xs:element name="cell" type="vector" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>

but the corresponding XML would be

<data xsi:type="vector">1</data>
<data xsi:type="vector">1 2 3 4</data>
<data xsi:type="vector3d">
<cell>1 2 3</cell>
<cell>34</cell>
<cell>15 23 23 15 67</cell>
</data>

that is not backward compatible.

In the end, I think that the best option you have is to define a new element (data3d?) and add a xs:choice between <data> and <data3d>.

Hope this helps,
Alberto

   
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.