Subject: AW: [xsl] alternate attribute types in xsd|
From: "Dr. Patrik Stellmann patrik.stellmann@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 11 Aug 2017 05:43:11 -0000
Hi Andre, Just as the derived types added the @type attribute they can add any number of attributes - e.g. @phase: [...] <xs:complexType name="res-thing"> <xs:complexContent> <xs:extension base="res-base"> <xs:attribute name="type" type="thing-type"/> <xs:attribute name="phase" type="thing-phase"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="res-being"> <xs:complexContent> <xs:extension base="res-base"> <xs:attribute name="type" type="being-type"/> <xs:attribute name="phase" type="being-phase"/> </xs:extension> </xs:complexContent> </xs:complexType> [...] <xs:simpleType name="being-phase"> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="being-phase-1"/> <xs:enumeration value="being-phase-2"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="thing-phase"> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="thing-phase-1"/> <xs:enumeration value="thing-phase-2"/> </xs:restriction> </xs:simpleType> </xs:schema> BTW: I never considered my approach to be anything special. It's simply I understood the alternate types are meant to be used... Regards, Patrik > ------------------------------------------------------------------ Systemarchitektur & IT-Projekte Tel: +49 40 33449-1142 Fax: +49 40 33449-1400 E-Mail: mailto:Patrik.Stellmann@xxxxxxxxx -----UrsprC<ngliche Nachricht----- > Von: Andre Cusson akhu01@xxxxxxxxx [mailto:xsl-list- > service@xxxxxxxxxxxxxxxxxxxxxx] > Gesendet: Freitag, 11. August 2017 04:22 > An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Betreff: Re: [xsl] alternate attribute types in xsd > > Dear Dr Stellmann, > > While it seems unfortunate that XSD (e.g. 1.1) does not support conditional > attribute types, some subscribers to this list have suggested interesting > workarounds. > The RELAX NG approach suggested by Syd Bauman, seems especially elegant, > expressive, and powerful. > Unfortunately, the availability of common high performance RELAX NG validators > seems like an issue for this application. > > While seemingly somewhat deliciously devious, your XSD approach is certainly > very interesting. > I would be just about to use it but there seems to be one more consideration that > was unfortunately not obvious from the simplified example I provided. > I would like to it submit to you, and others possibly, in the hope that you could > further help resolve it. > > The issue is that the res element in the model I am trying to put together has more > attributes, including 4 more, currently, for which, like the @type attribute in the > example, the attribute type also depends on the value of the @class attribute. > Luckily, for now still, I do not need cascading conditional types, as all five of > these attributes depend on the value of the same @class attribute. > In other words, there are attributes like @status, @phase, @mode, @group, for > example, which are enumerations also, just like for the @type attribute, and that > each depend on the value of the @class attribute. > > For example, for the @phase attribute, there could be a thing-phase-type as well > as a being-phase-type, whether @class="thing" > or @class="being", and so on. > > I can imagine that I could possibly define square(# of conditional-attributes, e.g. > 25) extension types and try to figure out some way to assign them some, but it > seems less obvious than I would hope. > > Is there a way to express this type of conceptually conditional attributes in XSD? > > If so, how would you handle having just one more @class dependent attribute type > (e.g. @phase)? > > Thank you for your support, your time, and for an interesting and creative example > use of XSD. > > Regards, > > ac > GDV Dienstleistungs-GmbH GlockengieCerwall 1 D-20095 Hamburg www.gdv-dl.de Sitz und Registergericht: Hamburg HRB 145291 USt.-IdNr : DE 205183123 GeschC$ftsfC<hrer: Dr. Jens Bartenwerfer Michael Bathke Fred di Giuseppe Chiachiarella Thomas Fischer Aufsichtsratsvorsitzender: Werner Schmidt ------------------------------------------------------------------ Diese E-Mail und alle AnhC$nge enthalten vertrauliche und/oder rechtlich geschC<tzte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtC<mlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese E-Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe der E-Mail ist nicht gestattet. This e-mail and any attached files may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden.