phr document standard

printer friendly version of this page

View PHR Schema

contact.xsd

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://indivo.org/xml/phr/contact"
    xmlns:con="http://indivo.org/xml/phr/contact"
    xmlns:type="http://indivo.org/xml/phr/types"
    xmlns="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="unqualified">
    
    <import namespace="http://indivo.org/xml/phr/types" 
    schemaLocation="http://indivo.org/xml/phr/types.xsd"/>
        
    <element name="ConciseContactInformation" type="con:ConciseContactInformationType"/>
    <complexType name="ConciseContactInformationType">
        <sequence>
            <choice>
                <sequence>
                    <element name="PersonName" type="con:NameType" minOccurs="1" maxOccurs="unbounded"/>
                    <element name="JobTitle" type="string" minOccurs="0"/>
                    <element name="Affiliation" type="string" minOccurs="0"/>
                </sequence>
                <element name="OrganizationName" type="string" minOccurs="1"/>
                <element name="SystemName" type="string" minOccurs="1"/>
            </choice>
            <element name="Address" type="con:AddressType" minOccurs="0" maxOccurs="unbounded"/>
            <element name="ContactMethod" type="con:CommunicationType" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
    </complexType>
    
    <complexType name="NameType">
        <sequence>
            <element name="Salutation" type="string" minOccurs="0"/>
            <element name="FirstName" type="string" minOccurs="0"/>
            <element name="MiddleName" type="string" minOccurs="0"/>
            <element name="LastName" type="string" minOccurs="0"/>
            <element name="Suffix" type="string" minOccurs="0" maxOccurs="unbounded"/>
            <!--birth name, alias, etc-->
            <element name="Type" type="string" minOccurs="0"/>
        </sequence>
    </complexType>
    
    <complexType name="AddressType">
        <sequence>
            <element name="Type" type="string" minOccurs="1"/>
            <element name="Priority" type="integer" minOccurs="1"/>
            <element name="StreetAddress1" type="string" minOccurs="0"/>
            <element name="StreetAddress2" type="string" minOccurs="0"/>
            <element name="County" type="string" minOccurs="0"/>
            <element name="City" type="string" minOccurs="0"/>
            <element name="State" type="string" minOccurs="0"/>
            <element name="PostalCode" type="string" minOccurs="0"/>
            <element name="Country" type="string" minOccurs="0"/>
        </sequence>
    </complexType>
    
    <complexType name="CommunicationType">
        <sequence>
            <!--phone, email, pager, etc-->
            <element name="Medium" type="string" minOccurs="1"/>
            <element name="Priority" type="integer" minOccurs="1"/>
            <!--home, mobile, office, etc-->
            <element name="Class" type="string" minOccurs="1"/>
            <element name="Value" type="string" minOccurs="1"/>
        </sequence>
    </complexType>
    
    <element name="ContactInformation" type="con:ContactInformationType"/>
    <complexType name="ContactInformationType">
        <complexContent>
            <extension base="con:ConciseContactInformationType">
                <sequence>
                    <element name="Ssn" type="string" minOccurs="0"/>
                    <element name="Contacts" type="con:RelationInformationType" minOccurs="0" maxOccurs="unbounded"/>
                    <element name="Photo" type="type:ImageType" minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    
    <complexType name="RelationInformationType">
        <complexContent>
            <extension base="con:ContactInformationType">
                <sequence>
                    <element name="Emergency" type="boolean"/>
                    <element name="Relationship" type="type:CodedValueType"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
 
</schema>