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
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Lisa FeltenSubject: Check for valid attribute values based on other attribute values at runtime?
Author: Lisa Felten
Date: 02 Oct 2009 08:20 PM
I know this is likely possible, but I'm having trouble locating a how-to guide that explains exactly what I want to do...

I have a recursively-defined complexType referenced by the root of my schema:

<xs:element name="root" type="RootNode"/>

<xs:complexType name="RootNode">
<xs:element name="sub" type="SubNode"/>
<xs:attribute name="version" type="xs:string"/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>

<xs:complexType name="SubNode">
<xs:choice>
<xs:element name="sub" type="SubNode" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="other" type="OtherNode"/>
</xs:choice>
<xs:attribute name="type" type="SubType" use="required"/>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>


Now, I have a list of defined SubType enums but even more specifically, I want to be able to have rules regarding the "type" attribute of the SubNode. Say I have type0, type1, type2 and type3 being the valid enums. But since a SubNode can have one or more SubNode child nodes, I want to specify that a type0 SubNode should have exactly one type1 SubNode child. And that a type1 SubNode should have exactly two type2 SubNode children. And a type2 SubNode should have exactly three type3 SubNode children.

I think I have to use something outside the XML Schema spec...but what? How do I enforce these rules? Schematron? I've never used it...just heard the name.

Postnext
Ivan PedruzziSubject: Check for valid attribute values based on other attribute values at runtime?
Author: Ivan Pedruzzi
Date: 06 Oct 2009 06:07 PM

Hi Lisa,

May be using XQuery for content base validation is an option.

Ivan Pedruzzi
Stylus Studio Team

Posttop
Lisa FeltenSubject: Check for valid attribute values based on other attribute values at runtime?
Author: Lisa Felten
Date: 06 Oct 2009 07:47 PM
Thanks, Ivan.

I've since solved my problem by using an XSLT stylesheet instead of trying to use XML Schemas to validate my instance file. XSLT allows for XPath expressions, along with if/choose/when/otherwise tags which facilitate what I needed to do.

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
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.