Subject:Unable to create a complex type with facets and element children Author:Paul Corriveau Date:07 May 2008 09:09 AM
Thanks for taking the time to look at this. I've been struggling with this and am about to say "it can't be done", but I wanted to run it by you all first in the hopes that you might have some ideas.
Here is the goal:
I need a type that will:
1.) Allow simple content (strings, decimal, etc) with attributes
2.) Allow that content to be contrained with facets (maxLength, totalDigits, etc.),
3.) Allow that type to have element children.
The problem is that I can create a type that will do 1 and 3 above, but as soon as I introduce the ability to do 3 (element children), the ability to do 2 (constrain with facetcs) drops right off the face of the earth. Below is how I arrived at this:
Using the sample document above, pretend that it does not have the Transactions chile element, so the Code element would look like this.
I created a type to support the above element, and that supports the #1 item above. It looks like this:
I have contrained the length of the string to 1 and all is working fine at this point. The simple attributed string element that validated before still validates. The element below:
will fail validation because the two character length of the string violates the maxLength facet.
So, #1 and #2 goal are working fine. I move on to add the element children. I have another complex type that defines what I want that element child to look like. I believe it is mostly irrelevant, but here it is:
All is well, it validates, choruses of uneartly voices are singing slightly out of my perception and I'm ready to go home for the day confident that the problem has been solved. However... altering the above to change the value of the the Code element from one character to two character, just to be sure it still catches the problem and that the constraint is working, reveals that the existence of the constraint has completely dropped off the radar and the document will validate, no matter what I put in there.
Thanks for taking the time to read this. I apologize for the length, but I was aiming for clarity. If I have accomplished neither brevity nor clarity, well then, I guess I *really* apologize then.
Subject:Unable to create a complex type with facets and element children Author:Alberto Massari Date:08 May 2008 03:21 PM
when you add mixed=true you are allowing any non-whitespace text to be present between the elements making the complex type, and you cannot validate them separately anymore. Unfortunately, XMLSchema doesn't support the structure you want to achieve.