The weakness here is that you rely on the sender adding xsi:type to the instance to get validation. If you do not control the sender then this could be a problem. You will not know whether the parser validated each element or not unless you check that xsi:type is present on each which would likely mean you have to parse to DOM and check each place where this could be present in the instance. That is, if you require validation. If you don't then it doesn't matter.

The general problem with this approach is that the schema defines a contract on the document. The contract being defined would say that any element is allowed but there is no way to say that only elements of a specific type are allowed. So the contract being defined is not specific enough to use the schema without out-of-band information.

Pete

Henry S. Thompson wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hämmer Wolfgang writes:

  
I don't know these name in advance.
    

Another option is to use xsi:type in the instance -- see the XML
Schema Primer, particularly section 4.7 [1] (but you don't want to
make your type abstract).  You'll end up with e.g.

 <TableDropBanana xsi:type="CommonType">
  ...
  <LocalVariables>...</LocalVariables>
 </TableDropBanana>

Ultimate fallback is to use lax validation and give LocalVariables a
top-level declaration, and at least it and its contents will get
validated properly.

ht

[1] http://www.w3.org/TR/xmlschema-0/#abstract
- -- 
 Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
                     Half-time member of W3C Team
    2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
            Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
                   URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFCuotGkjnJixAXWBoRAs4BAJ4+2iHlT3lEMFhfR0pT0cIMyo7UIACfX/Dq
tzMWVtQujpdVbNW80MyKPBs=
=a61e
-----END PGP SIGNATURE-----