Schema Name: ContactMethods.xsd
Target Namespace: http://rets.org/xsd/RETSCommons/2007-08
Documentation:
Types and Elements related to telephone or other communications identification.
Collapse XSD Schema Code:

<xs:schema	xmlns:xs="http://www.w3.org/2001/XMLSchema"
				xmlns:commons="http://rets.org/xsd/RETSCommons/2007-08"
				targetNamespace="http://rets.org/xsd/RETSCommons/2007-08"
				elementFormDefault="qualified"
				attributeFormDefault="unqualified">

	<!--
		(C)2007 National Association of REALTORS(R). All Rights Reserved

		Tab stops
		:set ts=3
		
		File History
		======================
		$Header: ContactMethods.xsd, 30, 3/31/08 4:09:26 AM EDT, Paul Stusiak$
		
		$Log:
		 30   055_RETS_Standard 1.29        3/31/08 4:09:26 AM EDT Paul Stusiak
		      work in progress checkin against change requests including the RCP for
		       the adopted schemas
		 29   055_RETS_Standard 1.28        2/21/08 3:55:52 PM EST Gina Accawi
		      Modify enum values to add whitespace where necessary.
		 28   055_RETS_Standard 1.27        1/24/08 2:30:32 PM EST Paul Stusiak
		      correct copyright notice language
		 27   055_RETS_Standard 1.26        10/8/07 1:44:42 AM EDT Paul Stusiak
		      general clean up of the schema, add missing retsid as necessary.
		 26   055_RETS_Standard 1.25        10/2/07 5:33:09 PM EDT Gina Accawi
		      Rename ContactMethod to ContactMethods. Add values to the
		      PhoneTypeEnum.
		 25   055_RETS_Standard 1.24        7/25/07 3:11:09 AM EDT Paul Stusiak
		      add retsid documentation pattern
		 24   055_RETS_Standard 1.23        7/6/07 12:30:50 PM EDT Paul Stusiak
		      Change enumerations to use common format of
		      OtherEnumerationDescriptionString for Rooms change CR 29
		 23   055_RETS_Standard 1.22        7/5/07 5:09:35 PM EDT  Gina Accawi
		      Remove commented out code. Move email address above email. Add
		      address. Allow otherDescription for type enums. Move preference type
		      to primitives.
		 22   055_RETS_Standard 1.21        7/5/07 3:06:58 PM EDT  Gina Accawi
		      Create privacy type attribute for contact information items. 
		 21   055_RETS_Standard 1.20        7/5/07 2:50:27 PM EDT  Gina Accawi
		      Add Showing for phone. Add email type enumeration. Add preference
		      order type and elements. Make Email a sequence. Make other contact
		      information a sequence with a preference order. 
		 20   055_RETS_Standard 1.19        6/26/07 4:05:12 PM EDT Gina Accawi
		      Rename ContactInformation to ContactMethod.
		 19   055_RETS_Standard 1.18        6/25/07 6:15:39 PM EDT Gina Accawi     
		 18   055_RETS_Standard 1.17        6/21/07 9:51:32 PM EDT Paul Stusiak    
		 17   055_RETS_Standard 1.16        6/14/07 6:16:31 PM EDT Gina Accawi
		      Update documentation for rename.
		 16   055_RETS_Standard 1.15        6/14/07 6:01:58 PM EDT Gina Accawi     
		 15   055_RETS_Standard 1.14        6/13/07 5:17:35 PM EDT Gina Accawi
		      Include comments on suggested type and category design modification
		      where rather than element names indicating category: Office, Home,
		      etc. for a phone number an included child element does so. Also,
		      include the type and category enumerations.
		 14   055_RETS_Standard 1.13        5/2/07 3:55:29 PM EDT  Paul Stusiak
		      remove pattern match for email type
		 13   055_RETS_Standard 1.12        5/1/07 5:36:59 PM EDT  Paul Stusiak
		      Update the version timestamp, make the schema relative again,
		      normalize the date related typing to use SecureDateTime and naming to
		      be of the form XXXDateTime
		 12   055_RETS_Standard 1.11        4/13/07 2:54:31 PM EDT Paul Stusiak
		      Pretty-print update to limit body width to less than 70 characters for
		       review purposes.
		 11   055_RETS_Standard 1.10        4/13/07 2:26:59 PM EDT Paul Stusiak
		      uncomment stronger pattern matching for the email address.
		 10   055_RETS_Standard 1.9         4/3/07 7:59:31 PM EDT  Paul Stusiak
		      use url resolution for include, import to test schema validation
		 9    055_RETS_Standard 1.8         4/3/07 3:43:42 PM EDT  Paul Stusiak
		      Added documentation and appinfo.
		 8    055_RETS_Standard 1.7         4/3/07 4:43:59 AM EDT  Paul Stusiak
		      change namespace to remote location (www.ftc2.com) for testing
		 7    055_RETS_Standard 1.6         4/2/07 2:26:57 PM EDT  Paul Stusiak
		      change namespace to match responding server and to use the URI
		      versioning suggested by both HP and XFront
		 6    055_RETS_Standard 1.5         3/30/07 9:20:07 PM EDT Paul Stusiak
		      Update of the versionTimestamp and the namespace (namespace to
		      200704). Change formating to a standard format
		 5    055_RETS_Standard 1.4         3/20/07 12:12:48 AM EDTPaul Stusiak
		      Add SecurePhone type, reformat to standard type, add AlternatePhone
		      and OtherContact
		 4    055_RETS_Standard 1.3         3/8/07 1:58:50 AM EST  Paul Stusiak
		      Clean up the project information for the purposes of document
		      generation.
		 3    055_RETS_Standard 1.2         3/6/07 4:51:57 PM EST  Paul Stusiak
		      Added tab stop information, attempted more complex validation,
		      unsuccessfully.
		 2    055_RETS_Standard 1.1         2/28/07 3:26:38 AM EST Paul Stusiak
		      completion of first cut at refactoring out from RETSCommons.xsd
		 1    055_RETS_Standard 1.0         2/27/07 10:14:31 PM ESTPaul Stusiak    
		$
		======================
	-->

	<xs:annotation>
		<xs:documentation>
			Types and Elements related to telephone or other
			communications identification.
		</xs:documentation>
	</xs:annotation>

	<xs:include schemaLocation="Address.xsd"/>
	<xs:include schemaLocation="Primitives.xsd"/>

	<!-- Types -->
	<xs:simpleType name="affix">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:simpleType name="desc">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:complexType name="PhoneTypeEnum">
			<xs:simpleContent>
				<xs:restriction base="commons:OtherEnumerationDescriptionString">
					<xs:enumeration value="Voice">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101624</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Fax">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101625</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Pager">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101626</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="SMS">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101627</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="TTY">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101628</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Voicemail">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101629</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Message Service">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101630</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Other">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101631</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
				</xs:restriction>
			</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="PhoneCategoryEnum">
			<xs:simpleContent>
				<xs:restriction base="commons:OtherEnumerationDescriptionString">
					<xs:enumeration value="Office">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101632</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Mobile">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101633</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Home">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101634</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Assistant">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101635</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Team">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101636</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Event">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101637</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Conference">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101638</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Showing">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101639</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
					<xs:enumeration value="Other">
						<xs:annotation>
							<xs:appinfo>
								<retsid>101640</retsid>
							</xs:appinfo>
						</xs:annotation>
					</xs:enumeration>
				</xs:restriction>
			</xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="EmailTypeEnum">
		<xs:simpleContent>
			<xs:restriction base="commons:OtherEnumerationDescriptionString">
				<xs:enumeration value="Agent">
					<xs:annotation>
						<xs:appinfo>
							<retsid>101641</retsid>
						</xs:appinfo>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="MLS">
					<xs:annotation>
						<xs:appinfo>
							<retsid>101642</retsid>
						</xs:appinfo>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="Consumer">
					<xs:annotation>
						<xs:appinfo>
							<retsid>101643</retsid>
						</xs:appinfo>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="Other">
					<xs:annotation>
						<xs:appinfo>
							<retsid>101644</retsid>
						</xs:appinfo>
					</xs:annotation>
				</xs:enumeration>
		</xs:restriction>
		</xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="Phone">
		<xs:annotation>
			<xs:documentation>
				The main type information for the phone type uses a
				restriction applied to the string datatype to limit the
				valid characters to the set of number representation
				characters '0'-'9'.

				This restriction results in the suppression of additional
				characters often seen in representations of telephone
				numbers.

				Characters like '.', '(' ')' and others are used as
				separators between the elements for human recognition.
				Characters like '-', ' '(space) and '+' have a more
				general use and may appear in certain standards bodies
				references. However, in all cases, there is no important
				information imparted in these characters and their use is
				determined by local convention.

				The whitespace and '+' suppression, along with
				restricting the use of other characters are part of a
				simplification choice made for several reasons:
					1. The restriction to enforce the use of characters
					other than numbers is more difficult to understand
					and may not be properly supported in all tools.
					2. Representations of the complete number are
					locale specific. A telephone number is presented
					differently based on culture.
					3. Resolution between the stringnumeric and legacy
					systems should be simplified. For string
					representations, it is conversion by restriction. An
					unparsed phone in a legacy system may have the form
					+1 (888) 555-1212. This and other permutations should
					be easily converted to the form presented here
						<country-code>1</country-code>
						<area-code>888</area-code>
						<local-number>5551212</local-number>
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="preference-order"
				type="commons:preferenceOrderType">
				<xs:annotation>
					<xs:documentation>
						Indicates the preference order within all the ContactMethods.
						Highest preference is 0.
					</xs:documentation>
					<xs:appinfo>
						<retsid>100049</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element name="phone-preference-order"
				type="commons:preferenceOrderType">
				<xs:annotation>
					<xs:documentation>
						Indicates the preference order within all the Phones.
						Highest preference is 0. 
					</xs:documentation>
					<xs:appinfo>
						<retsid>100050</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="prefix"
							type="commons:affix">
				<xs:annotation>
					<xs:documentation>
						The prefix is the first portion of a telephone
						number.

						The prefix may be any string of values and
						represents the access code to a telephone system.
						This may be used to carry the call over an
						alternate carrier or may be necessary when dialing
						international or national calls. They may also be
						necessary to connect to alternate phone systems
						like satellite phone systems.

						Generally, the access code is not represented in
						domestic telephone number use.

						Examples of access codes are:
							0
							00
							9201010
					</xs:documentation>
					<xs:appinfo>
						<retsid>100051</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="country-code"
							type="commons:stringnumeric">
				<xs:annotation>
					<xs:documentation>
						The country-code comes after the prefix and before
						the area code.

						The well-known ITU-T country calling codes as
						defined in E.164. The schema does not enforce the
						use of valid codes.

						Additionally, the schema suppresses whitespace that
						is normally present in printed examples.

						Finally, the schema suppresses the '+' that is
						normally present in printed examples.

						Here are some examples of the country code and
						location
							+1 for the US
							+1 444 for Bermuda
							+44 for the UK
					</xs:documentation>
					<xs:appinfo>
						<retsid>100052</retsid>
						<example>1</example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="area-code"
							type="commons:stringnumeric">
				<xs:annotation>
					<xs:documentation>
						The area-code comes after the country code and
						precedes the local-number.

						The regional identifier (or overlay identifier)
						applied by the national carrier regulation
						authority.
						
						In some locales, the use of area code is mandatory
						for dialing all numbers while in other it is only
						necessary for dialing outside of the local calling
						area.

						The schema does not enforce the use of valid codes.

						Additionally, the schema suppresses parentheses
						that are normally present in printed examples.

						Here are some examples of the country code and
						location
							(312) for the Chicago-IL US overlay
							(020) for Amsterdam, the Netherlands calls
							originating from within the country directed
							to Amsterdam.

						Within this schema, the example values will be
							312
							020
					</xs:documentation>
					<xs:appinfo>
						<retsid>100053</retsid>
						<example>888</example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="local-number"
							type="commons:stringnumeric">
				<xs:annotation>
					<xs:documentation>
						The access number to connect to a telephone. It
						comes after the area-code.

						The number of digits depends on the location. In
						the North American Numbering Plan area, the number
						is 7, while in other areas, there may be fewer or
						more digits.

						An example is 555-1212.

						Within this schema, the example will be 5551212
					</xs:documentation>
					<xs:appinfo>
						<retsid>100054</retsid>
						<example>5551212</example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="extension"
							type="commons:stringnumeric">
				<xs:annotation>
					<xs:documentation>
						The extension is optional and comes after the
						local-number.

						It represents a more specific location, typically
						the direct desk phone of a person within an office.
					</xs:documentation>
					<xs:appinfo>
						<retsid>100055</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="suffix"
							type="commons:affix"/>
			<xs:element name="phone-type"
							 type="commons:PhoneTypeEnum">
				<xs:annotation>
					<xs:appinfo>
						<retsid>100056</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element name="category"
							  type="commons:PhoneCategoryEnum">
				<xs:annotation>
					<xs:appinfo>
						<retsid>100057</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="description"
							type="commons:desc">
				<xs:annotation>
					<xs:appinfo>
						<retsid>100058</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute ref="commons:privacyType"
						use="optional">
			<xs:annotation>
				<xs:documentation>
					Provide a level of privacy for this phone number. 
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="SecurePhone">
		<xs:complexContent>
			<xs:extension base="commons:Phone">
				<xs:attribute	ref="commons:isgSecurityClass"
									use="required">
					<xs:annotation>
						<xs:appinfo>
							<retsid>100059</retsid>
							<example></example>
						</xs:appinfo>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute	ref="commons:visibilityFlag"
									use="optional">
					<xs:annotation>
						<xs:appinfo>
							<retsid>100060</retsid>
							<example></example>
						</xs:appinfo>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="EmailAddress">
		<xs:annotation>
			<xs:documentation>
				Formatted string used to specify a standard electronic
				mail message, formatted name@addess.domain.
				This is defined in RFC 2822 (and some definitions in
				RFC 2821).
				It consists of a local part and a domain part separated
				by the character '@'
				
				Note that RFC defines several forms of email address
				that are fairly rare.
				
				Valid email addresses
				someone@example.com
				a.someone@example.com
				a.one_two{}@some.example.com
				!def!xyz%abc@local.example.com
				some..one@example.com
				
				Invalid email addresses
				.someone@example.com
				someone.@example.com
				@example.com
				
				Possibly valid email addresses that fail validation
				some\@one@example.com
				someone@b.com
				someone@example.longdomain
				
				This pattern does not cover valid cases like quoted
				local parts, escaping, character sets other than ASCII,
				IP address, domain roots (.com) longer than 9 characters
				and less than 2 and several other cases
			</xs:documentation>
			<xs:appinfo>
				someone@example.com
			</xs:appinfo>
		</xs:annotation>
		<xs:simpleContent>
			<xs:restriction base="commons:SecureString">
			</xs:restriction>
		</xs:simpleContent>
	</xs:complexType>
	
	<xs:complexType name="Email">
		<xs:sequence>
			<xs:element name="preference-order"
							type="commons:preferenceOrderType">
				<xs:annotation>
					<xs:documentation>
						Indicates the preference order within all the ContactMethods.
						Highest preference is 0.
					</xs:documentation>
					<xs:appinfo>
						<retsid>100061</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element name="email-preference-order"
							type="commons:preferenceOrderType">
				<xs:annotation>
					<xs:documentation>
						Indicates the preference order within all the email addresses.
						Highest preference is 0.
					</xs:documentation>
					<xs:appinfo>
						<retsid>100062</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element name="EmailAddress" 
							type="commons:EmailAddress"
							minOccurs="1"
							maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						The email address itself.
					</xs:documentation>
					<xs:appinfo>
						<retsid>100063</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute ref="commons:privacyType"
						use="optional">
			<xs:annotation>
				<xs:documentation>
					Provide a level of privacy for this phone number. 
				</xs:documentation>
				<xs:appinfo>
					<retsid>100064</retsid>
					<example></example>
				</xs:appinfo>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="OtherContact">
		<xs:sequence>
			<xs:element name="preference-order"
							type="commons:preferenceOrderType">
				<xs:annotation>
					<xs:documentation>
						Indicates the preference order within all the ContactMethods.
						Highest preference is 0.
					</xs:documentation>
					<xs:appinfo>
						<retsid>100065</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element name="other-preference-order"
							type="commons:preferenceOrderType">
				<xs:annotation>
					<xs:documentation>
						Indicates the preference order within the other contact methods.
						Highest preference is 0.
					</xs:documentation>
					<xs:appinfo>
						<retsid>100066</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element name="Details"
							type="xs:string">
				<xs:annotation>
					<xs:documentation>
						Alternate raw contact string for sms, email page
						or other addressable technology. 
					</xs:documentation>
					<xs:appinfo>
						<retsid>100067</retsid>
						<example></example>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute ref="commons:privacyType"
						use="optional">
			<xs:annotation>
				<xs:documentation>
					Provide a level of privacy for this phone number. 
				</xs:documentation>
				<xs:appinfo>
					<retsid>100068</retsid>
					<example></example>
				</xs:appinfo>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="ContactMethods">
		<xs:sequence>
		<xs:element	name="Phone" 
						type="commons:Phone"
						minOccurs="0"
						maxOccurs="unbounded">
			<xs:annotation>
					<xs:appinfo>
						<retsid>100069</retsid>
					</xs:appinfo>
			</xs:annotation>
		</xs:element>
		<xs:element	name="Email"
						type="commons:Email"
						minOccurs="0"
						maxOccurs="unbounded">
			<xs:annotation>
					<xs:appinfo>
						<retsid>100070</retsid>
					</xs:appinfo>
			</xs:annotation>
		</xs:element>
		<xs:element	name="Address"
						type="commons:Address"
						minOccurs="0"
						maxOccurs="unbounded">
			<xs:annotation>
					<xs:appinfo>
						<retsid>100071</retsid>
					</xs:appinfo>
			</xs:annotation>
		</xs:element>
		<xs:element	name="OtherContact"
						type="commons:OtherContact"
						minOccurs="0"
						maxOccurs="unbounded">
			<xs:annotation>
					<xs:appinfo>
						<retsid>100072</retsid>
					</xs:appinfo>
			</xs:annotation>
		</xs:element>
		<xs:any	namespace="##other"
					minOccurs="0"
					maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
Collapse ComplexTypes:
Collapse SimpleTypes: