Hallo Thomas,
Auch in XML-Schema ist es nicht möglich auf Grund von Attributwerten solche Unterscheidungen zu definieren.
Wenn ich mich nicht vertue, aber in RELAX NG, hier mal in kompakter Syntax, ungetestet:
~~~relaxng Person = element person { Student | Mitarbeiter }
Student = ( attribute art { "student" }
& element matnr { xsd:int }
& Name )
Mitarbeiter = ( attribute art { "mitarbeiter" }
& element matnr { xsd:int }
& Name )
Name = element name { text }
Wäre in XML Schema mittels xs:choice nicht ein gleiches möglich? Oder kann letzteres nur zwischen Elementen als Inhalt unterscheiden?
Tim