W3C home > Mailing lists > Public > xmlschema-dev@w3.org > February 2011

How to define a value space that is a cross-product of simpleType value spaces?

From: Costello, Roger L. <costello@mitre.org>
Date: Thu, 24 Feb 2011 05:49:02 -0500
To: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
Message-ID: <9E51F88D5247B648908850C35A3BBB50052E53085F@IMCMBX3.MITRE.ORG>
Hi Folks,

Suppose this is the value space for "family name" values:

length: 1 - 100 characters 
consists of the characters: a-z, A-Z, space, hyphen, period, and apostrophe

That value space is implemented using this simpleType:

    <xs:simpleType name="Family-name">
        <xs:restriction base="xs:string">
            <xs:minLength value="1" />
            <xs:maxLength value="100" />
            <xs:pattern value="[a-zA-Z' \.-]+" />
        </xs:restriction>
    </xs:simpleType>


Suppose this is the value space for "middle initial" values:

length: 1 character 
consists of the characters: A-Z

That value space is implemented using this simpleType:

    <xs:simpleType name="Middle-initial">
        <xs:restriction base="xs:string">
            <xs:length value="1" />
            <xs:pattern value="[A-Z]+" />
        </xs:restriction>
    </xs:simpleType>


Suppose this is the value space for "given name" values:

length: 1 - 100 characters 
consists of the characters: a-z, A-Z, space, hyphen, period, and apostrophe

That value space is implemented using this simpleType:

    <xs:simpleType name="Given-name">
        <xs:restriction base="xs:string">
            <xs:minLength value="1" />
            <xs:maxLength value="100" />
            <xs:pattern value="[a-zA-Z' \.-]+" />
        </xs:restriction>
    </xs:simpleType>


Now there are 3 user-defined value spaces. Let me denote them by F, M, G, respectively. (F = Family, M = Middle, G = Given)

I would like to aggregate them to create a "person name" value space. This is the value space for person name:

Person-name is the cross product: G x M x F

Here is an example of a value in the Person-name value space:

("Roger", "L", "Costello")

How do I implement the Person-name value space?

/Roger
Received on Thursday, 24 February 2011 10:49:40 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 24 February 2011 10:49:41 GMT