"Overriding" Attribute Declarations

In XML DTDs, one can override the declaration of an attribute declared 
in an external declaration set by declaring the overriding version 
earlier, e.g.:

<!DOCTYPE foo SYSTEM "mybase.dtd" [
   <!ATTLIST foo bar CDATA #IMPLIED
]>
<foo bar="baz/>

Where mybase.dtd declares the element type "foo" with the attribute bar 
with a different type.

I don't see an obvious way to do with with XSD using redefine. At least, 
when I add a declaration to a redefine that otherwise works (to add a 
new attribute not declared in the base type being redefined), Xerces 2.9 
says I have a duplicate attribute declaration.

I didn't see anything about this specifically in the XSD Primer and I'm 
afraid I find the formal definition largely impenetrable (at least at 
this late hour).

Have I missed something?

Note, in my specific case I don't have control over the base schemas, so 
I can't do something like pull the attributes to be redefined out into 
their own attribute group, although I'm not sure that would solve the 
problem.

Thanks,

Eliot
-- 
W. Eliot Kimber
Professional Services
Innodata Isogen
8500 N. Mopac, Suite 402
Austin, TX 78759
(214) 954-5198

ekimber@innodata-isogen.com
www.innodata-isogen.com

Received on Tuesday, 12 June 2007 04:11:55 UTC