> ie.  if it only knew about a
> car, it would process the car and ignore the Ford specific data, or
> Honda specific data depending on what type of car it actually received.

But if your Honda car claims that "I'm a Honda, and you have to treat me as
a Honda" (via xsi:type), then the schema processor has no choice but to
tell you I'm sorry.

The schema spec is very clear on this. When there is an xsi:type in the
instance document, its value "must resolve to a type definition", which
indicates that if such resolution fails, there is an error.

You might want to consider <redefine>ing the "standard" schema, instead of
extending it. This way, you don't need to specify "xsi:type" in your
instance. And you can switch between the "standard" and the "redefined"
schemas using an entity resolver (or grammar pool in Xerces).

Hope this helps,
Sandy Gao
Software Developer, IBM Canada
(1-905) 413-3255
[EMAIL PROTECTED]



                                                                                
                                                
                      Dean Hiller                                               
                                                
                      <[EMAIL PROTECTED]        To:       [EMAIL PROTECTED]     
                                      
                      m>                       cc:                              
                                                
                                               Subject:  Re: dynamic 
validation, is this a bug                                  
                      11/20/2003 10:06                                          
                                                
                      AM                                                        
                                                
                      Please respond to                                         
                                                
                      xerces-j-user                                             
                                                
                                                                                
                                                
                                                                                
                                                



    yeah, can't really do that seeing as how the protocol is a
standard(ie. The whole xsd down below is the standard and we want to
extend it and add a proprietary feature the protocol doesn't have due to
customer requests), and you know how slow standards change.  I really
need to accomplish it by extension.  Should I ask the xerces developers
then????
    I personally don't like the any element and much prefer the object
oriented-ness of schemas where you can extend other base types and add
data to them though I haven't gotten them to work yet.  ideally, an
application would just ignore extra data.  ie.  if it only knew about a
car, it would process the car and ignore the Ford specific data, or
Honda specific data depending on what type of car it actually received.
thanks,
dean

Mike Rawlins wrote:

> At 05:27 PM 11/19/2003 -0700, Dean Hiller wrote:
>
>> good question.  did a quick grep...processContents is not found in
>> the entire schema(schema is 300 pages).
>> Root element looks like so
>>
>> <xsd:element name="Root" type="RootType/>
>> <xsd:complexType name="RootType">
>>      <xsd:sequence>
>>          <xsd:element name="Element" type="ElementType"/>
>>      </xsd:sequence>
>> </xsd:complexType>
>>
>> <xsd:complexType name="ElementType">
>>   <xsd:sequence>
>>       <xsd:element name="data1" type="xsd:string"/>
>>   </xsd:sequence>
>> </xsd:complexType>
>
>
> Hmm, not quite what I was expecting.  If you want to play around with
> another approach, you might instead do something like:
>
> <xsd:complexType name="ElementType">
>   <xsd:sequence>
>     <xsd:element name="data1" type="xsd:string"/>
>     <xsd:any namespace="##any" processContents="skip">
>   </xsd:sequence>
> </xsd:complexType>
>
> Then, in your instance document try:
>
> <Element>
>   <data1>some data</:data1>
>   <ava:data2>more data</ava:data2>
> </Element>
>
> I'm not sure I've got the syntax exactly correct, but this may be
> closer to what you want and at least get you started.   This is
> approach, of course, just deals with the instance document and
> schema.   I've had a few problems with a similar approach with Xerces,
> but didn't have time to track them down to closure.  However, this or
> something similar *should* work.
>
> Mike
>
> ---------------------------------------------------------------
> Michael C. Rawlins, Rawlins EC Consulting
> www.rawlinsecconsulting.com
> Using XML with Legacy Business Applications (Addison-Wesley, 2003)
> www.awprofessional.com/titles/0321154940
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to