|
List Info
Thread: RE: Validating a value against a SchemaType object
|
|
| RE: Validating a value against a
SchemaType object |
  United States |
2007-05-07 16:49:46 |
Hi,
This issue is a sticking-point on our project, since it's
one of the main reasons we chose to go with XMLBeans (the
fact that we could validate against a type in isolation --
not an entire schema file).
Without going into great detail, our project involves a
graphical editor where each user-inputted value is governed
by a type from a schema file (but where not enough data is
available at validation time to validate on a document
level).
If no one is sure how to do this, can anyone recommend a few
places to poke around in the XMLBeans code to get this
working? If necessary we could update the library itself to
support this, with some direction for a starting point.
Thanks again,
Vance
> -------- Original Message --------
> Subject: RE: Validating a value against a SchemaType
object
> From: Vance Vagell <vance vancevagell.com>
> Date: Thu, May 03, 2007 8:48 pm
> To: user xmlbeans.apache.org
>
> Hi Jacob,
>
> Thanks for the tip. I took a look at
InstanceValidator, and noticed
> that the key difference was that it uses the same
SchemaTypeLoader
> instance it used to load the SchemaTypes to also load
the XML to be
> validated. I tried that, no dice. However, I did a
little more
> debugging:
>
> * The error value I get back when validation fails is:
cvc-elt.1
> * XmlErrorCodes describes this error as
"ELEM_LOCALLY_VALID$NO_TYPE",
> "cvc-elt.1: See clause 1 of XMLSchema Structures
1.0: Element Locally
> Valid (Element)"
> * I took a look at the suggested part of the schema
spec, and that
> clause reads "1 The declaration must not be
absent."
> * I took a look at all the XmlBeans code that includes
the words
> "invalid type", and found that the most
likely source of this is this
> part of QNameHelper:
>
> if (sType.isNoType() || sType.getOuterType() ==
null)
> {
> return "invalid type";
> }
>
> * Using a debugger, I was able to confirm that the
SchemaType I'm
> validating against DOES return null for getOuterType()
(not sure what
> this signifies -- the Javadocs for this method are very
terse).
>
> So long story short, let me restate my goal, and
hopefully someone has
> another lifejacket they can throw me as I float around
in this sea of
> schemas and XML:
>
> - I have a value, as a string. Such as
"car".
> - I have a SchemaType object (a simple type), that was
loaded from a
> schema file, that says that valid values are
"car" or "truck".
> - I want to validate that "car" is a valid
value, given the SchemaType
> object.
> - I create an XmlObject like this:
>
> XmlObject xmlObject =
schemaTypeLoader.parse("<whatever>" + value
+
> "</whatever>", null, null); // Note
that the SchemaType specified here
> is null, I don't have or want a type that defines
"whatever"
>
> - I select the "whatever" child, because I am
not actually interested
> in the tag, just the (simple) value.
>
> xmlObject = xmlObject.selectChildren(new
QName("whatever"))[0];
>
> - I change the type of the object to the type I'm
interested in
> validating against:
>
> xmlObject = xmlObject.changeType(schemaType);
>
> However, xmlObject.validate() always returns false, and
if I use an
> error listener I find out the information I described
earlier in this
> email.
>
> I've spent quite a few hours looking into this, and
would sincerely
> appreciate any advice others may have as to how I can
perform this
> validation. Note that the schemas involved have not
been compiled
> into Java objects, as this is a fully dynamic
application, where the
> schemas are loaded -- the user types in a value -- and
then the
> SchemaType objects are referenced to check its
validity.
>
> Thanks so much!
>
> - Vance
------------------------------------------------------------
---------
To unsubscribe, e-mail: user-unsubscribe xmlbeans.apache.org
For additional commands, e-mail: user-help xmlbeans.apache.org
|
|
| Re: Validating a value against a
SchemaType object |

|
2007-05-08 11:51:37 |
Hi Vance,
I guess I'm a little confused as to what you are trying to
do. It
sounds like you are trying to validate user input with
xmlbeans
without a schema or values since you don't care about the
elements or
other data.
Why not use some kind of form validation? - since xml/xsd is
not
important to your problem
What about creating an simpleType with valid enumeration
values and
validating against that?
For your scenario:
- I have a value, as a string. Such as "car".
- I have a SchemaType object (a simple type), that was
loaded from a
schema file, that says that valid values are "car"
or "truck".
- I want to validate that "car" is a valid value,
given the SchemaType object.
it seems like the enumeration might do the trick for you
with a little
effort. Have you tried this route?
-Jacob Danner
On 5/7/07, Vance Vagell <vance vancevagell.com> wrote:
> Hi,
>
> This issue is a sticking-point on our project, since
it's one of the main reasons we chose to go with XMLBeans
(the fact that we could validate against a type in isolation
-- not an entire schema file).
>
> Without going into great detail, our project involves a
graphical editor where each user-inputted value is governed
by a type from a schema file (but where not enough data is
available at validation time to validate on a document
level).
>
> If no one is sure how to do this, can anyone recommend
a few places to poke around in the XMLBeans code to get this
working? If necessary we could update the library itself to
support this, with some direction for a starting point.
>
> Thanks again,
> Vance
>
> > -------- Original Message --------
> > Subject: RE: Validating a value against a
SchemaType object
> > From: Vance Vagell <vance vancevagell.com>
> > Date: Thu, May 03, 2007 8:48 pm
> > To: user xmlbeans.apache.org
> >
> > Hi Jacob,
> >
> > Thanks for the tip. I took a look at
InstanceValidator, and noticed
> > that the key difference was that it uses the same
SchemaTypeLoader
> > instance it used to load the SchemaTypes to also
load the XML to be
> > validated. I tried that, no dice. However, I did
a little more
> > debugging:
> >
> > * The error value I get back when validation fails
is: cvc-elt.1
> > * XmlErrorCodes describes this error as
"ELEM_LOCALLY_VALID$NO_TYPE",
> > "cvc-elt.1: See clause 1 of XMLSchema
Structures 1.0: Element Locally
> > Valid (Element)"
> > * I took a look at the suggested part of the
schema spec, and that
> > clause reads "1 The declaration must not be
absent."
> > * I took a look at all the XmlBeans code that
includes the words
> > "invalid type", and found that the most
likely source of this is this
> > part of QNameHelper:
> >
> > if (sType.isNoType() ||
sType.getOuterType() == null)
> > {
> > return "invalid type";
> > }
> >
> > * Using a debugger, I was able to confirm that the
SchemaType I'm
> > validating against DOES return null for
getOuterType() (not sure what
> > this signifies -- the Javadocs for this method are
very terse).
> >
> > So long story short, let me restate my goal, and
hopefully someone has
> > another lifejacket they can throw me as I float
around in this sea of
> > schemas and XML:
> >
> > - I have a value, as a string. Such as
"car".
> > - I have a SchemaType object (a simple type), that
was loaded from a
> > schema file, that says that valid values are
"car" or "truck".
> > - I want to validate that "car" is a
valid value, given the SchemaType
> > object.
> > - I create an XmlObject like this:
> >
> > XmlObject xmlObject =
schemaTypeLoader.parse("<whatever>" + value
+
> > "</whatever>", null, null); //
Note that the SchemaType specified here
> > is null, I don't have or want a type that defines
"whatever"
> >
> > - I select the "whatever" child, because
I am not actually interested
> > in the tag, just the (simple) value.
> >
> > xmlObject = xmlObject.selectChildren(new
QName("whatever"))[0];
> >
> > - I change the type of the object to the type I'm
interested in
> > validating against:
> >
> > xmlObject = xmlObject.changeType(schemaType);
> >
> > However, xmlObject.validate() always returns
false, and if I use an
> > error listener I find out the information I
described earlier in this
> > email.
> >
> > I've spent quite a few hours looking into this,
and would sincerely
> > appreciate any advice others may have as to how I
can perform this
> > validation. Note that the schemas involved have
not been compiled
> > into Java objects, as this is a fully dynamic
application, where the
> > schemas are loaded -- the user types in a value --
and then the
> > SchemaType objects are referenced to check its
validity.
> >
> > Thanks so much!
> >
> > - Vance
>
>
------------------------------------------------------------
---------
> To unsubscribe, e-mail: user-unsubscribe xmlbeans.apache.org
> For additional commands, e-mail: user-help xmlbeans.apache.org
>
>
------------------------------------------------------------
---------
To unsubscribe, e-mail: user-unsubscribe xmlbeans.apache.org
For additional commands, e-mail: user-help xmlbeans.apache.org
|
|
[1-2]
|
|