Re: Question - Extending attribute values

Maybe you can define your extensibleTypeA as being a union type where one
member type admits the built-in enumeration options and another member type
allows arbitrary QNames:

<simpleType>
  <union memberTypes="QName">
    <simpleType>
      <restriction base="NMTOKEN">
        <enumeration value="v1"/>
        <enumeration value="v2"/>
      </restriction>
    </simpleType>
  </union>
</simpleType>

--Stefan

> 
> Hello,
> 
> I'm working with the group developing XLIFF (<http://www.xliff.org>). The
> schema for the next version of this document type should be open in the
> sense that users of the schema should be able to validate instance
> documents
> which deviate from the schema in certain predefined ways:
> 
> a) inclusion of additional elements at well-defined extension points
> b) inclusion of additional attributes at well-defined extension points
> c) modification of predefined data types most notably
> 	1) replacement of enumeration
> 	2) addition to enumeration
> 
> Our aim is that any deviation has to be public in the sense that the
> inclusions and modifications are captured in a user-defined XSD schema
> that
> can be accessed for validation purposes.
> 
> Our XSD schema should initially work with the Microsoft XML Core Services
> (MSXML) 4.0 Release.
> 
> We have the feeling that the 'any' element and the 'anyAttribute' of XSD
> provide support for the deviations of type 'inclusion' (see above). We are
> unsure, however, how to cope with the deviation of type 'modification'
> since
> we are thinking along the following lines:
> 
> Our XSD contains something like:
> 
> <xsd:simpleType name="extensibleTypeA">
>  <xsd:restriction base="xsd:NMTOKEN">
>   <xsd:enumeration value="v1"/>
>   <xsd:enumeration value="v2"/>
> ...
> 
> <xsd:complexType name="ElemType_T">
>  <xsd:sequence>
>   <xsd:element name="source" type="ElemType_S"/>
>  </xsd:sequence>
>  <xsd:attribute name="a" type="extensibleTypeA"/>
>  ...
> 
> <xsd:element name="trans-unit" type="ElemType_T"/>
> 
> Users, however, may want to create instances documents such as:
> 
> <trans-unit a="userNamespace:v3">...</trans-unit>
> 
> Is there a mechanism in XSD that allows this? We are looking at using
> unions
> or derivations, but either techniques seems to require to modify or
> inherit
> >from the original format. Is there a way to use values of a user
> namespace
> the same way we can use elements and attributes?
> 
> Thanks in advance for any pointers or suggestions.
> -yves
> 
> 
> 

-- 
<

Received on Thursday, 19 September 2002 10:07:23 UTC