- From: Dean Hiller <dhiller@avaya.com>
- Date: Fri, 21 Nov 2003 08:59:57 -0700
- To: xmlschema-dev@w3.org
Hi all, having a huge discussion over on the xerces-J list right now. I got the impression from somone on this list that if I had this XML <ns1:element xsi:type="ava:ExtendedElement"> <ns1:data/> <ava:moredata/> </ns1:element> I could validate against the ns1 namespace and ignore the ava namespace. I am being told on the xerces list this is not true according to the specification, which I think I may agree that the specification states this is not true.(though I don't agree with having that in the spec) First, let me give a small background on the entire problem. I am writing a client that I want to communicate a standard protocol(namespace="ns1" above). I don't want to use any extensions from any companies(namespace="ava" above). My client is typically behind a firewall and can't get the extra schemas. It only gets what I ship with it. I only ship the standard as I communicate with all servers that implement the standard. Problem is some companies extend their schema as above and they all extend differently for the extra features they offer. This naturally makes me want to process and validate Element without validating ExtendedElement. Now to the spec, the spec has item 4.3(spec section pasted below) which states the local type definition must be validly derived from the type definition. Unfortunately, since xerces is not given the extended schema(or the other 100 companies extension on the standard), it cannot verify 4.4 so cannot declare the element to be locally valid. I personally think, this is big mistake to do this, because there are situations you just want to validate the superclass without validating the subclass, like my above scenario. ----------------------------------------XSD BEGIN SPEC------------------------------------ 4 If there is an attribute information item among the element information item's [attributes] whose [namespace name] is identical to http://www.w3.org/2001/XMLSchema-instance and whose [local name] is type, then all of the following must be true: 4.1 The ·normalized value· of that attribute information item must be ·valid· with respect to the built-in QName simple type, as defined by String Valid (§3.14.4); 4.2 The ·local name· and ·namespace name· (as defined in QName Interpretation (§3.15.3)), of the ·actual value· of that attribute information item must resolve to a type definition, as defined in QName resolution (Instance) (§3.15.4) -- [Definition:] call this type definition the local type definition; 4.3 The ·local type definition· must be validly derived from the {type definition} given the union of the {disallowed substitutions} and the {type definition}'s {prohibited substitutions}, as defined in Type Derivation OK (Complex) (§3.4.6) (if it is a complex type definition), or given {disallowed substitutions} as defined in Type Derivation OK (Simple) (§3.14.6) (if it is a simple type definition). --------------------------------------XSD END SPEC------------------------------------ thanks for any help or suggestions here, dean
Received on Friday, 21 November 2003 11:02:05 UTC