Re: Changing the type of an attribute

Folks,

I sent this request for help ten days ago, but unfortunately got no reaction
whatsoever.

Can anybody help?

regards,
Hans

==============================

Hans Teijgeler wrote:

> Folks,
>
> Below are the snippets of a schema that are relevant to a problem I stumbled
> across.
>
> I validated this schema against XSV and got the following error:
>
> file:///usr/local/XSV/xsvlog/tmpchD_tWuploaded:2265:5: Invalid: restricting
> attribute with type
> {http://www.tc184-s
> 4.org/iso15926-7/datamodel/2005-1.xsd}any-enumerated_set_of_class
>
> not derived from declared base's attribute's type
> {http://www.tc184-sc4.org/iso15926-7/datamodel/2005-1.xsd{any-thing}
>
> The code snippets are:
>
>         <xs:simpleType name="id_pattern">
>                 <xs:restriction base="xs:NMTOKEN">
>                         <xs:pattern
> value="([a-zA-Z][a-zA-Z0-9]__)*[a-zA-Z0-9\.\-]+(&#x00B7;[a-zA-Z0-9\.\-]+)?"/>
>                 </xs:restriction>
>         </xs:simpleType>
>         <xs:simpleType name="idref_pattern">
>                 <xs:restriction base="xs:NMTOKEN">
>                         <xs:pattern
> value="([a-zA-Z][a-zA-Z0-9]__)*[a-zA-Z0-9\.\-]+(&#x00B7;[a-zA-Z0-9\.\-]+)?"/>
>                 </xs:restriction>
>         </xs:simpleType>
>         <!--=====================-->
>         <xs:complexType name="thing" abstract="true">
>                 <xs:attribute name="id" type="id_pattern" use="required"/>
>         </xs:complexType>
>         <xs:simpleType name="any-thing">
>                 <xs:restriction base="idref_pattern"/>
>         </xs:simpleType>
>         <!--=====================-->
>         <xs:complexType name="class">
>                 <xs:complexContent>
>                         <xs:extension base="thing"/>
>                 </xs:complexContent>
>         </xs:complexType>
>         <xs:simpleType name="any-class">
>                 <xs:restriction base="idref_pattern"/>
>         </xs:simpleType>
>         <!--=====================-->
>         <xs:complexType name="enumerated_set_of_class">
>                 <xs:complexContent>
>                         <xs:extension base="class_of_class"/>
>                 </xs:complexContent>
>         </xs:complexType>
>         <xs:simpleType name="any-enumerated_set_of_class">
>                 <xs:restriction base="idref_pattern"/>
>         </xs:simpleType>
>         <!--=====================-->
>         <xs:complexType name="functional_mapping">
>                 <xs:complexContent>
>                         <xs:extension base="relationship">
>                                 <xs:attribute name="input" type="any-thing"
> use="required"/>
>                                 <xs:attribute name="result" type="any-thing"
> use="required"/>
>                         </xs:extension>
>                 </xs:complexContent>
>         </xs:complexType>
>         <!--=====================-->
>         <xs:complexType name="difference_of_set_of_class">
>                 <xs:complexContent>
>                         <xs:restriction base="functional_mapping">
>                                 <xs:attribute name="input"
> type="any-enumerated_set_of_class"/> <!--problem spot-->
>                                 <xs:attribute name="result" type="any-class"/>
>
>                         </xs:restriction>
>                 </xs:complexContent>
>         </xs:complexType>
>         <!--=====================-->
>
> I produced this code with an older version (4.4) of XML Spy, and that seemed
> to
> be correct (perhaps at that time?).
>
> NOTE: From the rest of the schema one can derive that we deal here with the
> following path through the model hierarchy:
> thing >> class >> class_of_class >> enumerated_set_of_class.
>
> You may wonder what I tried to achieve. That is a kind of idref constraint,
> where I cannot use idref, because:
>
>    * the referenced id's are not part of the XML document (they are there,
>      somewhere on the Internet)
>    * the constraint shall be valid for all elements that are typed with this
>      complexType
>    * the types like "any-enumerated_set_of_class" are in fact hidden
> Processing
>      Instructions, because the id referenced in the attribute "input" shall
> not
>      only follow that pattern, but also belong to an element (instance) that
> is
>      of the type "enumerated_set_of_class".
>
> Any suggestions how to solve this problem?
>
> Regards,
> Hans
>
>

Received on Friday, 31 December 2004 09:58:40 UTC