
Hi Freek; On 8/16/11 9:20 AM, thus spake Freek Dijkstra:
Maybe it helps to put my requirements for the "relation" XML syntax on the table again, without the examples.
1. Be extensible
Defining a base namespace, and using extension namesapes is the most straightforward way to accomplish this. See the 5+ years of examples from perfsSONAR/NMC if you need examples of how these work in practice.
2. It should be possible to create a specific validator for each relation type.
See above.
3. Parsers should be able to recognise an unknown relation type as a relation subclass (rather then simply an unknown element)
Parsers are not able to do this alone. Parsers are stupid. They simply walk the instance tree, and if they are validating, compare the extracted results vs the schema/syntactic definition that they are supplied. It is a mistake to assume that a parser by itself is capable of rich semantic interpretation. If you really want to go this route, you can make a beautifully complex schema where all choices and meanings are explicitly stated. This schema would apply to your single use case, and it would be absolute hell to extend to others. This is a decision that perfsSONAR/NMC made a long time ago with regards to the data format and message exchange - extensible vs complete. I believe that the extension mechanisms from namespaces will get you both, but there needs to be a cut point established regarding what belongs in the base and what belongs in extended namespaces. Thanks; -jason