7.3 contactCard Category

Location: http://schemas.microsoft.com/2006/09/sip/contactcard

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema 
    targetNamespace="http://schemas.microsoft.com/2006/09/sip/contactcard"
    xmlns:tns="http://schemas.microsoft.com/2006/09/sip/contactcard"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:ct="http://schemas.microsoft.com/2006/09/sip/commontypes"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">
 
  <xs:import
      namespace="http://schemas.microsoft.com/2006/09/sip/commontypes" 
      schemaLocation="commontypes.xsd"/>
 
  <xs:simpleType name="photoTypeEnum">
    <xs:restriction base="xs:token">
      <xs:enumeration value="default" />
      <xs:enumeration value="enterprise" />
      <xs:enumeration value="other" />
      <xs:enumeration value="exchange" />
    </xs:restriction>
  </xs:simpleType>
 
  <xs:simpleType name="photoTypeEnumEx">
    <xs:union memberTypes="tns:photoTypeEnum xs:token" />
  </xs:simpleType>
 
  <xs:simpleType name="phoneTypeEnum">
    <xs:restriction base="xs:token">
      <xs:enumeration value="work"/>
      <xs:enumeration value="home"/>
      <xs:enumeration value="mobile"/>
      <xs:enumeration value="other"/>
      <xs:enumeration value="custom1"/>
    </xs:restriction>
  </xs:simpleType>
 
  <xs:simpleType name="phoneTypeEnumEx">
    <xs:union memberTypes="tns:phoneTypeEnum xs:token" />
  </xs:simpleType>
 
  <xs:complexType name="updatedType" abstract="true">
    <xs:attribute name="updated" type="xs:dateTime" use="optional"/>
    <xs:anyAttribute processContents="lax"/>
  </xs:complexType>
  
  <xs:complexType name="updatedAnyURIType">
    <xs:simpleContent>
      <xs:extension base="xs:anyURI">
        <xs:attribute name="updated" type="xs:dateTime" use="optional"/>
        <xs:anyAttribute processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
 
  <xs:complexType name="updatedStringType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="updated" type="xs:dateTime" use="optional"/>
        <xs:anyAttribute processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
 
  <xs:complexType name="LCIDType">
    <xs:simpleContent>
      <xs:extension base="tns:updatedStringType">
        <xs:attribute name="LCID" type="xs:unsignedInt" use="optional"/>
        <xs:anyAttribute processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
 
  <xs:simpleType name="urlTypeEnum">
    <xs:restriction base="xs:token">
      <xs:enumeration value="sharepoint"/>
      <xs:enumeration value="voicemail"/>
      <xs:enumeration value="other"/>
    </xs:restriction>
  </xs:simpleType>
 
  <xs:simpleType name="urlTypeEnumEx">
    <xs:union memberTypes="tns:urlTypeEnum xs:token" />
  </xs:simpleType>
 
  <xs:complexType name="urlType">
    <xs:simpleContent>
      <xs:extension base="tns:updatedAnyURIType">
        <xs:attribute name="type" type="tns:urlTypeEnumEx"/>
        <xs:anyAttribute processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
 
  <xs:complexType name="photoType">
    <xs:complexContent>
      <xs:extension base="tns:updatedType">
        <xs:sequence>
          <xs:element name="uri" type="tns:updatedAnyURIType" minOccurs="0" maxOccurs="1" />
          <xs:element name="hash" type="xs:string" minOccurs="1" maxOccurs="1" />
          <xs:sequence minOccurs="0" maxOccurs="1">
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
              <xs:element ref="ct:delimiter" />
              <xs:any namespace="##targetNamespace" processContents="lax" 
                   minOccurs="0" maxOccurs="unbounded" />
            </xs:sequence>
            <xs:element ref="ct:end" />
          </xs:sequence>
          <xs:element ref="ct:extension" minOccurs="0" maxOccurs="1" />
        </xs:sequence>
        <xs:attribute name="type" type="tns:photoTypeEnumEx" use="required"/>
        <xs:anyAttribute processContents="lax" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
 
  <xs:complexType name="phoneType">
    <xs:complexContent>
      <xs:extension base="tns:updatedType">
        <xs:sequence>
          <xs:element name="uri" type="tns:updatedAnyURIType" 
                      minOccurs="1" maxOccurs="1"/>
          <xs:element name="displayString" type="tns:LCIDType" 
                      minOccurs="0" maxOccurs="unbounded"/>
 
          <xs:sequence minOccurs="0" maxOccurs="1">
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
              <xs:element ref="ct:delimiter"/>
              <xs:any namespace="##targetNamespace" processContents="lax" 
                      minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:element ref="ct:end"/>
          </xs:sequence>
          <xs:element ref="ct:extension" minOccurs="0" maxOccurs="1"/>
          
        </xs:sequence>
        <xs:attribute name="type" type="tns:phoneTypeEnumEx"/>
        <xs:anyAttribute processContents="lax"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="nameType">
    <xs:complexContent>
      <xs:extension base="tns:updatedType">
        <xs:sequence>
          <xs:element name="displayName" type="tns:LCIDType" 
                      minOccurs="0" maxOccurs="unbounded"/>
 
          <xs:sequence minOccurs="0" maxOccurs="1">
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
              <xs:element ref="ct:delimiter"/>
              <xs:any namespace="##targetNamespace" processContents="lax" 
                      minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:element ref="ct:end"/>
          </xs:sequence>
          <xs:element ref="ct:extension" minOccurs="0" maxOccurs="1"/>
 
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
 
  <xs:complexType name="identityType">
    <xs:complexContent>
      <xs:extension base="tns:updatedType">
        <xs:sequence>
          <xs:element name="name" type="tns:nameType" minOccurs="0"/>
          <xs:element name="email" type="tns:updatedAnyURIType" 
                      minOccurs="0" maxOccurs="unbounded"/>
 
          <xs:sequence minOccurs="0" maxOccurs="1">
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
              <xs:element ref="ct:delimiter"/>
              <xs:any namespace="##targetNamespace" processContents="lax" 
                      minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:element ref="ct:end"/>
          </xs:sequence>
          <xs:element ref="ct:extension" minOccurs="0" maxOccurs="1"/>
 
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
 
  <xs:simpleType name="addressTypeEnum">
    <xs:restriction base="xs:token">
      <xs:enumeration value="work"/>
      <xs:enumeration value="home"/>
      <xs:enumeration value="other"/>
    </xs:restriction>
  </xs:simpleType>
 
  <xs:simpleType name="addressTypeEnumEx">
    <xs:union memberTypes="tns:addressTypeEnum xs:token" />
  </xs:simpleType>
 
  <xs:complexType name="addressType">
    <xs:sequence>
      <xs:element name="street" type="tns:LCIDType" 
                  minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="city" type="tns:LCIDType" 
                  minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="state" type="tns:LCIDType" 
                  minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="zipcode" type="tns:LCIDType" 
                  minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="countryCode" type="xs:token" minOccurs="0" maxOccurs="1"/>
 
      <xs:sequence minOccurs="0" maxOccurs="1">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="ct:delimiter"/>
          <xs:any namespace="##targetNamespace" processContents="lax" 
                  minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:element ref="ct:end"/>
      </xs:sequence>
      <xs:element ref="ct:extension" minOccurs="0" maxOccurs="1"/>
 
    </xs:sequence>
    <xs:attribute name="type" type="tns:addressTypeEnumEx"/>
    <xs:anyAttribute processContents="lax"/>
  </xs:complexType>
 
  <xs:simpleType name="presentityDescriptionType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="1024" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="presentityTypeEnum">
    <xs:restriction base="xs:token">
      <xs:enumeration value="person" />
      <xs:enumeration value="huntgroup" />
      <xs:enumeration value="autoattendant" />
      <xs:enumeration value="automaton" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="presentityTypeEnumEx">
    <xs:union memberTypes="tns:presentityTypeEnum xs:token" />
  </xs:simpleType>
 
  <xs:complexType name="contactCardType">
    <xs:complexContent>
      <xs:extension base="tns:updatedType">
        <xs:sequence>
          <xs:element name="identity" type="tns:identityType" minOccurs="0" 
                      maxOccurs="unbounded"/>
          <xs:element name="address" type="tns:addressType" minOccurs="0" 
                      maxOccurs="unbounded"/>
          <xs:element name="company" type="tns:LCIDType" minOccurs="0" 
                      maxOccurs="unbounded"/>
          <xs:element name="department" type="tns:LCIDType" minOccurs="0" 
                      maxOccurs="unbounded"/>
          <xs:element name="title" type="tns:LCIDType" minOccurs="0" 
                      maxOccurs="unbounded"/>
          <xs:element name="office" type="tns:LCIDType" minOccurs="0" 
                      maxOccurs="unbounded"/>
          <xs:element name="url" type="tns:urlType" minOccurs="0" 
                      maxOccurs="unbounded"/>
          <xs:element name="phone" type="tns:phoneType" minOccurs="0" 
                      maxOccurs="unbounded"/>
          <xs:element name="automaton" type="xs:boolean" minOccurs="0" 
                      maxOccurs="1" default="false" />
 
          <xs:sequence minOccurs="0" maxOccurs="1">
            <xs:element ref="ct:delimiter" />
            <xs:element name="type" type="tns:presentityTypeEnumEx" 
               minOccurs="0" maxOccurs="1" />
            <xs:element name="description" 
               type="tns:presentityDescriptionType" minOccurs="0" 
               maxOccurs="1" />
            <xs:sequence minOccurs="0" maxOccurs="1">  
                <xs:element ref="ct:delimiter" />
                <xs:element name="displayADPhoto" type="xs:boolean" 
             minOccurs="0" maxOccurs="1" />
                <xs:element name="photo" type="tns:photoType" minOccurs="0" 
                    maxOccurs="unbounded" />
                <xs:sequence minOccurs="0" maxOccurs="unbounded">
                  <xs:element ref="ct:delimiter" />
                  <xs:any namespace="##targetNamespace" 
                       processContents="lax" minOccurs="0" 
                       maxOccurs="unbounded" />
                </xs:sequence>
            </xs:sequence>
            <xs:element ref="ct:end"/>
          </xs:sequence>
          <xs:element ref="ct:extension" minOccurs="0" maxOccurs="1"/>
 
        </xs:sequence>
        <xs:attribute name="majorVersion" type="xs:unsignedInt" use="optional" />
        <xs:attribute name="minorVersion" type="xs:unsignedInt" use="optional" />
        <xs:anyAttribute processContents="lax"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
 
  <xs:element name="contactCard" type="tns:contactCardType"/>
 
</xs:schema>