TimeTrex/classes/GovernmentForms/country/ca/schema/cracommonstructures.xsd

543 lines
20 KiB
XML
Raw Blame History

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Description: Canada Revenue Agency Common Structures - Used to present data types that are common to multiple CRA internal or external user groups
Version#: 1.16 (version #.yy)
-->
<xsd:schema targetNamespace="http://www.cra-arc.gc.ca/xmlns/ccms/1-0-0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sdt="http://www.cra-arc.gc.ca/xmlns/sdt/2-2-0" xmlns:ccms="http://www.cra-arc.gc.ca/xmlns/ccms/1-0-0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2-0-0">
<xsd:import namespace="http://www.cra-arc.gc.ca/xmlns/sdt/2-2-0" schemaLocation="standarddatatypes.xsd"/>
<xsd:element name="TaxationCentreCode">
<xsd:simpleType>
<xsd:restriction base="sdt:CodeType">
<xsd:enumeration value="92"/>
<xsd:enumeration value="94"/>
<xsd:enumeration value="95"/>
<xsd:enumeration value="96"/>
<xsd:enumeration value="97"/>
<xsd:enumeration value="98"/>
<xsd:enumeration value="99"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:complexType name="GivenNameType">
<xsd:annotation>
<xsd:documentation>
This type is provided to ensure consistent naming across CRA XML schemas
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:restriction base="sdt:NameType"/>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="GivenName">
<xsd:complexType>
<xsd:annotation>
<xsd:documentation>
This element is provided to ensure consistent naming across CRA XML schemas
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:restriction base="ccms:GivenNameType"/>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="FamilyNameType">
<xsd:annotation>
<xsd:documentation>
This type is provided to ensure consistent naming across CRA XML schemas
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:restriction base="sdt:NameType"/>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="FamilyName">
<xsd:complexType>
<xsd:annotation>
<xsd:documentation>
This element is provided to ensure consistent naming across CRA XML schemas
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:restriction base="ccms:FamilyNameType"/>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="SINType">
<xsd:annotation>
<xsd:documentation xml:lang="en">STANDARD CRA-SPECIFIC GLOBAL CONSTRUCTS SIN. Must pass MOD-10 check.</xsd:documentation>
<xsd:documentation xml:lang="fr">STANDARD SP<53>CIFIQUE DE L'ARC POUR G<>N<EFBFBD>RER UN NAS. Doit passer le contr<74>le MOD-10.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="sdt:NumberType">
<xsd:length value="9"/>
<xsd:pattern value="[0-9]{9}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="SocialInsuranceNumber">
<xsd:simpleType>
<xsd:restriction base="ccms:SINType"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ProvinceTerritoryCode">
<xsd:annotation>
<xsd:documentation xml:lang="en">Must be one of the following abbreviations: NL - Newfoundland, PE - Prince Edward Island, NS - Nova Scotia, NB - New Brunswick, QC - Quebec, ON - Ontario, MB - Manitoba, SK - Saskatchewan, AB - Alberta, BC - British Columbia, YT - Yukon, NU - Nunavut, NT - Northwest Territories</xsd:documentation>
<xsd:documentation xml:lang="fr">Doit <20>tre l'une des abr<62>viations suivantes: NL - Terre-Neuve-et-Labrador, PE - <20>le-du-Prince-<2D>douard, NS - Nouvelle-<2D>cosse, NB - Nouveau-Brunswick, QC - Qu<51>bec, ON - Ontario, MB - Manitoba, SK - Saskatchewan, AB - Alberta, BC - Colombie-Britannique, YT - Yukon, NU - Nunavut, NT - Territoires du Nord-Ouest</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="ccms:CanadianProvinceTerritoryCodeType">
<xsd:length value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="CanadianPostalCode">
<xsd:simpleType>
<xsd:restriction base="ccms:CanadianPostalCodeType"/>
</xsd:simpleType>
</xsd:element>
<xsd:simpleType name="CanadianPostalCodeType">
<xsd:restriction base="sdt:CodeType">
<xsd:length value="6"/>
<xsd:pattern value="([A-Za-z][0-9]){3}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="NorthAmericanTelephoneNumberType">
<xsd:sequence>
<xsd:element ref="ccms:TelephoneAreaCode"/>
<xsd:element ref="ccms:TelephoneLocalNumber"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="TelephoneAreaCode">
<xsd:annotation>
<xsd:documentation xml:lang="en">Telephone Area Code</xsd:documentation>
<xsd:documentation xml:lang="fr">Indicatif r<>gional du num<75>ro de t<>l<EFBFBD>phone</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="sdt:CodeType">
<xsd:length value="3"/>
<xsd:pattern value="[1-9][0-9]{2}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="TelephoneLocalNumber">
<xsd:annotation>
<xsd:documentation xml:lang="en">Telephone Number</xsd:documentation>
<xsd:documentation xml:lang="fr">Num<EFBFBD>ro de t<>l<EFBFBD>phone</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="sdt:NumberType">
<xsd:length value="7"/>
<xsd:pattern value="[0-9]{7}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<!-- common name structures names of varying length -->
<xsd:complexType name="Name30CharacterType">
<xsd:simpleContent>
<xsd:restriction base="sdt:NameType">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Name35CharacterType">
<xsd:simpleContent>
<xsd:restriction base="sdt:NameType">
<xsd:maxLength value="35"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Name50CharacterType">
<xsd:simpleContent>
<xsd:restriction base="sdt:NameType">
<xsd:maxLength value="50"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Name60CharacterType">
<xsd:simpleContent>
<xsd:restriction base="sdt:NameType">
<xsd:maxLength value="60"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Name150CharacterType">
<xsd:simpleContent>
<xsd:restriction base="sdt:NameType">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Name175CharacterType">
<xsd:simpleContent>
<xsd:restriction base="sdt:NameType">
<xsd:maxLength value="175"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<!-- Common text field structures of varying length -->
<xsd:simpleType name="NAICSCodeType">
<xsd:annotation>
<xsd:documentation>
North American Industrial Classification System
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="sdt:CodeType">
<xsd:maxLength value="6"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Character30TextType">
<xsd:simpleContent>
<xsd:restriction base="sdt:TextType">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Character35TextType">
<xsd:simpleContent>
<xsd:restriction base="sdt:TextType">
<xsd:maxLength value="35"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Character50TextType">
<xsd:simpleContent>
<xsd:restriction base="sdt:TextType">
<xsd:maxLength value="50"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Character60TextType">
<xsd:simpleContent>
<xsd:restriction base="sdt:TextType">
<xsd:maxLength value="60"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Character150TextType">
<xsd:simpleContent>
<xsd:restriction base="sdt:TextType">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Character175TextType">
<xsd:simpleContent>
<xsd:restriction base="sdt:TextType">
<xsd:maxLength value="175"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="FieldCodeAmountType">
<xsd:sequence>
<xsd:element ref="ccms:FieldCode"/>
<xsd:element ref="ccms:FieldAmount"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FieldCodeTextType">
<xsd:sequence>
<xsd:element ref="ccms:FieldCode"/>
<xsd:element ref="ccms:FieldText"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FieldCodeText60Type">
<xsd:sequence>
<xsd:element ref="ccms:FieldCode"/>
<xsd:element ref="ccms:Character60Text"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FieldCodeTextAmountType">
<xsd:sequence>
<xsd:element ref="ccms:FieldCode"/>
<xsd:element ref="ccms:FieldText"/>
<xsd:element ref="ccms:FieldAmount"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="FieldCode" type="sdt:CodeType"/>
<xsd:element name="FieldText" type="sdt:TextType"/>
<xsd:element name="Character60Text" type="ccms:Character60TextType"/>
<xsd:element name="FieldAmount" type="sdt:AmountType"/>
<xsd:simpleType name="OneTwoCodeType">
<xsd:restriction base="sdt:CodeType">
<xsd:enumeration value="1"/>
<xsd:enumeration value="2"/>
</xsd:restriction>
<!-- example: Yes-No or English-French indicators -->
</xsd:simpleType>
<xsd:simpleType name="OneCodeType">
<xsd:restriction base="sdt:CodeType">
<xsd:enumeration value="1"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="YesNoCodeType">
<xsd:restriction base="sdt:CodeType">
<xsd:enumeration value="Y"/>
<xsd:enumeration value="y"/>
<xsd:enumeration value="N"/>
<xsd:enumeration value="n"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="BN15" type="ccms:BN15Type"/>
<xsd:simpleType name="BN15Type">
<xsd:restriction base="sdt:NumberType">
<xsd:pattern value="([0-9]{9}\p{L}{2}[0-9]{4})"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="BusinessProgramAccountNumberType">
<xsd:sequence>
<xsd:element ref="ccms:BNRoot"/>
<xsd:element ref="ccms:BNProgramID"/>
<xsd:element ref="ccms:BNProgramAccountReferenceNumber"/>
</xsd:sequence>
</xsd:complexType>
<!-- -->
<xsd:element name="TrustNumber" type="ccms:TrustNumberType"/>
<xsd:simpleType name="TrustNumberType">
<xsd:restriction base="sdt:NumberType">
<xsd:pattern value="(\p{L}{1}[0-9]{8})"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="BNRoot" type="ccms:BNRootType"/>
<xsd:simpleType name="BNRootType">
<xsd:annotation>
<xsd:documentation xml:lang="en"> The BN is a 9-digit business identifier used in Canada to which businesses can register program accounts with the Canada Revenue Agency (CRA).
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="sdt:NumberType">
<xsd:pattern value="\d{9}"/>
</xsd:restriction>
</xsd:simpleType>
<!-- BNProgramID -->
<xsd:element name="BNProgramID" type="ccms:BNProgramIDType"/>
<xsd:simpleType name="BNProgramIDType">
<xsd:restriction base="xsd:string">
<xsd:length value="2"/>
</xsd:restriction>
</xsd:simpleType>
<!-- -->
<xsd:element name="BNProgramAccountReferenceNumber" type="ccms:BNProgramAccountReferenceNumberType"/>
<xsd:simpleType name="BNProgramAccountReferenceNumberType">
<xsd:annotation>
<xsd:documentation xml:lang="en"> Uniquely identifies the account's participation within a given program through the Business Number system.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="sdt:NumberType">
<xsd:pattern value="\d{4}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="CountryCodeType">
<xsd:restriction base="sdt:CodeType">
<xsd:pattern value="\p{L}{3}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="USAStateCodeType">
<xsd:restriction base="sdt:CodeType">
<xsd:length value="2"/>
<xsd:enumeration value="AL"/>
<xsd:enumeration value="al"/>
<xsd:enumeration value="NV"/>
<xsd:enumeration value="nv"/>
<xsd:enumeration value="AK"/>
<xsd:enumeration value="ak"/>
<xsd:enumeration value="NH"/>
<xsd:enumeration value="nh"/>
<xsd:enumeration value="AZ"/>
<xsd:enumeration value="az"/>
<xsd:enumeration value="NJ"/>
<xsd:enumeration value="nj"/>
<xsd:enumeration value="AR"/>
<xsd:enumeration value="ar"/>
<xsd:enumeration value="NM"/>
<xsd:enumeration value="nm"/>
<xsd:enumeration value="CA"/>
<xsd:enumeration value="ca"/>
<xsd:enumeration value="NY"/>
<xsd:enumeration value="ny"/>
<xsd:enumeration value="CO"/>
<xsd:enumeration value="co"/>
<xsd:enumeration value="NC"/>
<xsd:enumeration value="nc"/>
<xsd:enumeration value="CT"/>
<xsd:enumeration value="ct"/>
<xsd:enumeration value="ND"/>
<xsd:enumeration value="nd"/>
<xsd:enumeration value="DE"/>
<xsd:enumeration value="de"/>
<xsd:enumeration value="OH"/>
<xsd:enumeration value="oh"/>
<xsd:enumeration value="DC"/>
<xsd:enumeration value="dc"/>
<xsd:enumeration value="OK"/>
<xsd:enumeration value="ok"/>
<xsd:enumeration value="FL"/>
<xsd:enumeration value="fl"/>
<xsd:enumeration value="OR"/>
<xsd:enumeration value="or"/>
<xsd:enumeration value="GA"/>
<xsd:enumeration value="ga"/>
<xsd:enumeration value="PA"/>
<xsd:enumeration value="pa"/>
<xsd:enumeration value="HI"/>
<xsd:enumeration value="hi"/>
<xsd:enumeration value="RI"/>
<xsd:enumeration value="ri"/>
<xsd:enumeration value="ID"/>
<xsd:enumeration value="id"/>
<xsd:enumeration value="SC"/>
<xsd:enumeration value="sc"/>
<xsd:enumeration value="IL"/>
<xsd:enumeration value="il"/>
<xsd:enumeration value="SD"/>
<xsd:enumeration value="sd"/>
<xsd:enumeration value="IN"/>
<xsd:enumeration value="in"/>
<xsd:enumeration value="TN"/>
<xsd:enumeration value="tn"/>
<xsd:enumeration value="IA"/>
<xsd:enumeration value="ia"/>
<xsd:enumeration value="TX"/>
<xsd:enumeration value="tx"/>
<xsd:enumeration value="KS"/>
<xsd:enumeration value="ks"/>
<xsd:enumeration value="UT"/>
<xsd:enumeration value="ut"/>
<xsd:enumeration value="KY"/>
<xsd:enumeration value="ky"/>
<xsd:enumeration value="VT"/>
<xsd:enumeration value="vt"/>
<xsd:enumeration value="LA"/>
<xsd:enumeration value="la"/>
<xsd:enumeration value="VA"/>
<xsd:enumeration value="va"/>
<xsd:enumeration value="ME"/>
<xsd:enumeration value="me"/>
<xsd:enumeration value="WA"/>
<xsd:enumeration value="wa"/>
<xsd:enumeration value="MD"/>
<xsd:enumeration value="md"/>
<xsd:enumeration value="WV"/>
<xsd:enumeration value="wv"/>
<xsd:enumeration value="MA"/>
<xsd:enumeration value="ma"/>
<xsd:enumeration value="WI"/>
<xsd:enumeration value="wi"/>
<xsd:enumeration value="MI"/>
<xsd:enumeration value="mi"/>
<xsd:enumeration value="WY"/>
<xsd:enumeration value="wy"/>
<xsd:enumeration value="MN"/>
<xsd:enumeration value="mn"/>
<xsd:enumeration value="MS"/>
<xsd:enumeration value="ms"/>
<xsd:enumeration value="MO"/>
<xsd:enumeration value="mo"/>
<xsd:enumeration value="MT"/>
<xsd:enumeration value="mt"/>
<xsd:enumeration value="NE"/>
<xsd:enumeration value="ne"/>
<xsd:enumeration value="PR"/>
<xsd:enumeration value="pr"/>
<xsd:enumeration value="AS"/>
<xsd:enumeration value="as"/>
<xsd:enumeration value="FM"/>
<xsd:enumeration value="fm"/>
<xsd:enumeration value="GU"/>
<xsd:enumeration value="gu"/>
<xsd:enumeration value="MH"/>
<xsd:enumeration value="mh"/>
<xsd:enumeration value="MP"/>
<xsd:enumeration value="mp"/>
<xsd:enumeration value="PW"/>
<xsd:enumeration value="pw"/>
<xsd:enumeration value="VI"/>
<xsd:enumeration value="vi"/>
<xsd:enumeration value="ZZ"/>
<xsd:enumeration value="zz"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="CanadianProvinceTerritoryCodeType">
<xsd:annotation>
<xsd:documentation xml:lang="en">Must be one of the following abbreviations: NL - Newfoundland, PE - Prince Edward Island, NS - Nova Scotia, NB - New Brunswick, QC - Quebec, ON - Ontario, MB - Manitoba, SK - Saskatchewan, AB - Alberta, BC - British Columbia, YT - Yukon, NU - Nunavut, NT - Northwest Territories</xsd:documentation>
<xsd:documentation xml:lang="fr">Doit <20>tre l'une des abr<62>viations suivantes: NL - Terre-Neuve-et-Labrador, PE - <20>le-du-Prince-<2D>douard, NS - Nouvelle-<2D>cosse, NB - Nouveau-Brunswick, QC - Qu<51>bec, ON - Ontario, MB - Manitoba, SK - Saskatchewan, AB - Alberta, BC - Colombie-Britannique, YT - Yukon, NU - Nunavut, NT - Territoires du Nord-Ouest</xsd:documentation>
<xsd:documentation>
The values of US and ZZ are included in case they are needed to satisfy certain business requirements
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="sdt:CodeType">
<xsd:length value="2"/>
<xsd:enumeration value="ON"/>
<xsd:enumeration value="on"/>
<xsd:enumeration value="On"/>
<xsd:enumeration value="NS"/>
<xsd:enumeration value="ns"/>
<xsd:enumeration value="Ns"/>
<xsd:enumeration value="PE"/>
<xsd:enumeration value="pe"/>
<xsd:enumeration value="Pe"/>
<xsd:enumeration value="NB"/>
<xsd:enumeration value="nb"/>
<xsd:enumeration value="Nb"/>
<xsd:enumeration value="QC"/>
<xsd:enumeration value="qc"/>
<xsd:enumeration value="Qc"/>
<xsd:enumeration value="MB"/>
<xsd:enumeration value="mb"/>
<xsd:enumeration value="Mb"/>
<xsd:enumeration value="MA"/>
<xsd:enumeration value="ma"/>
<xsd:enumeration value="Ma"/>
<xsd:enumeration value="SK"/>
<xsd:enumeration value="sk"/>
<xsd:enumeration value="Sk"/>
<xsd:enumeration value="SA"/>
<xsd:enumeration value="sa"/>
<xsd:enumeration value="Sa"/>
<xsd:enumeration value="AB"/>
<xsd:enumeration value="ab"/>
<xsd:enumeration value="Ab"/>
<xsd:enumeration value="AL"/>
<xsd:enumeration value="al"/>
<xsd:enumeration value="Al"/>
<xsd:enumeration value="BC"/>
<xsd:enumeration value="bc"/>
<xsd:enumeration value="Bc"/>
<xsd:enumeration value="NT"/>
<xsd:enumeration value="nt"/>
<xsd:enumeration value="Nt"/>
<xsd:enumeration value="YT"/>
<xsd:enumeration value="yt"/>
<xsd:enumeration value="Yt"/>
<xsd:enumeration value="NL"/>
<xsd:enumeration value="nl"/>
<xsd:enumeration value="Nl"/>
<xsd:enumeration value="NF"/>
<xsd:enumeration value="nf"/>
<xsd:enumeration value="Nf"/>
<xsd:enumeration value="LB"/>
<xsd:enumeration value="lb"/>
<xsd:enumeration value="Lb"/>
<xsd:enumeration value="PQ"/>
<xsd:enumeration value="pq"/>
<xsd:enumeration value="Pq"/>
<xsd:enumeration value="QU"/>
<xsd:enumeration value="qu"/>
<xsd:enumeration value="Qu"/>
<xsd:enumeration value="NU"/>
<xsd:enumeration value="nu"/>
<xsd:enumeration value="Nu"/>
<xsd:enumeration value="NN"/>
<xsd:enumeration value="nn"/>
<xsd:enumeration value="Nn"/>
<xsd:enumeration value="US"/>
<xsd:enumeration value="us"/>
<xsd:enumeration value="Us"/>
<xsd:enumeration value="ZZ"/>
<xsd:enumeration value="zz"/>
<xsd:enumeration value="Zz"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ProvinceTerritoryStateCodeType">
<xsd:union memberTypes="ccms:CanadianProvinceTerritoryCodeType ccms:USAStateCodeType"/>
</xsd:simpleType>
</xsd:schema>