- From: xmlplus custodians <xmlplus.custodians@gmail.com>
- Date: Thu, 24 Feb 2011 20:08:23 +0530
- To: "Costello, Roger L." <costello@mitre.org>
- Cc: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
- Message-ID: <AANLkTi=3H5hx6aYfR=qM2eAhdBX+tVM7j38-ezFBVM3_@mail.gmail.com>
Sorry, looks like you want to aggregate the types into a new type, is so one could use a complexType consisting of the simpleTypes from your example, like following: <xs:complexType name="Person-name"> <xs:sequence> <xs:element name="familyName" type="Family-name"/> <xs:element name="middleInitial" type="Middle-initial"/> <xs:element name="givenName" type="Given-name"/> </xs:sequence> </xs:complexType> The individual types viz. Family-name, Middle-initial and Given-name have their value-space already constrained in your example, so in that sense this new complexType also has it's value space constrained. On Thu, Feb 24, 2011 at 7:49 PM, xmlplus custodians < xmlplus.custodians@gmail.com> wrote: > How about something like this for PersonName simpleType: > > <xs:simpleType name="Family-name"> > <xs:restriction base="xs:string"> > <xs:minLength value="3" /> > <xs:maxLength value="201" /> > <xs:pattern value="[a-zA-Z' \.\-]+\s+[A-Z]\s+[a-zA-Z' \.\-]+" /> > </xs:restriction> > </xs:simpleType> > > The length range [3-201] is reached using the addition of ranges of > individual types : [1-100], [1-1], [1-100]. > The pattern is almost an concatenation of the individual regexes that you > are using for the 3 simpleTypes with following modifications ... the hyphen > was not escaped in the regex, it should be, else it would signify range... > added \s to allow for space(s) between middle name character and the either > side of it. > > > On Thu, Feb 24, 2011 at 4:19 PM, Costello, Roger L. <costello@mitre.org>wrote: > >> 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 >> >> > > > -- > Best Regards, > Satya Prakash Tripathi > > > -- Best Regards, Satya Prakash Tripathi
Received on Thursday, 24 February 2011 14:38:56 UTC