Xml schema description

CustomerContract

 <xs:element name="CustomerContract">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="CustomerInfo" minOccurs="1" maxOccurs="unbounded">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="CustomerNo" type="Identifier15" nillable="false" minOccurs="1" maxOccurs="1"/>
       <xs:element name="CustomerInfo" minOccurs="1" maxOccurs="1">
        <xs:complexType>
         <xs:sequence>
          <xs:element name="Name" type="NameAddressString72" minOccurs="1" maxOccurs="1"/>
          <xs:element name="RegNo" type="RegNo" minOccurs="1" maxOccurs="1"/>
          <xs:element name="AddressInfo" minOccurs="1" maxOccurs="1">
           <xs:complexType>
            <xs:sequence>
             <xs:element name="LegalAddress" type="Address" minOccurs="1" maxOccurs="1"/>
             <xs:element name="E-MailAddress" type="Email" minOccurs="0" maxOccurs="1"/>
             <xs:element name="Cellphone" type="String15" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
           </xs:complexType>
          </xs:element>
          <xs:element name="CustomerContracts" minOccurs="1" maxOccurs="1">
           <xs:complexType>
            <xs:sequence>
             <xs:element name="NewContract" type="NewContract" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element name="ExtendContract" type="ExtendContract" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element name="CreditContract" type="CreditContract" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
           </xs:complexType>
          </xs:element>
         </xs:sequence>
         <xs:attribute name="LegalEntity" type="LegalEntity" use="optional"/>
        </xs:complexType>
       </xs:element>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:sequence>
   <xs:attribute name="Version" type="Version" use="required">
    <xs:annotation>
     <xs:documentation>Versions supported by this schema</xs:documentation>
    </xs:annotation>
   </xs:attribute>
   <xs:attribute name="CreatedDateTime" type="xs:dateTime" use="required">
    <xs:annotation>
     <xs:documentation>Date and time when the file was created</xs:documentation>
    </xs:annotation>
   </xs:attribute>
   <xs:attribute name="CompanyNo" type="CompanyNumber" use="required"/>
   <xs:attribute name="CompanyName" type="xs:string" use="required"/>
  </xs:complexType>
 </xs:element>

Money

 <xs:simpleType name="Money">
  <xs:restriction base="xs:decimal">
   <xs:fractionDigits value="2"/>
   <xs:minInclusive value="0.01"/>
   <xs:maxInclusive
        value="100000"/>
  </xs:restriction>
 </xs:simpleType>

Amount

 <xs:complexType name="Amount">
  <xs:sequence>
   <xs:element name="AmountInclVat" type="Money" nillable="false" minOccurs="1" maxOccurs="1"/>
  </xs:sequence>
  <xs:attribute name="Currency" type="eCurrencyType" use="required"/>
 </xs:complexType>

NewContract

 <xs:complexType name="NewContract">
  <xs:sequence>
   <xs:element name="ContractTransactionInfo" type="ContractTransactionInfo" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Reference, identifyer etc. for the contracttransaction</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="Amount" type="Amount" nillable="false" minOccurs="1" maxOccurs="1"/>
   <xs:element name="ContractExpectedEndDate" type="xs:date" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Expected duration of the contract</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="CreditCheckReference" type="String50" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Reference to creditcheck decision</xs:documentation>
    </xs:annotation>
   </xs:element>
  </xs:sequence>
 </xs:complexType>

ExtendContract

 <xs:complexType name="ExtendContract">
  <xs:sequence>
   <xs:element name="ContractTransactionInfo" type="ContractTransactionInfo" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Reference, identifyer etc. for the contracttransaction</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="Amount" type="Amount" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Amount to extend contract with</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="ContractExpectedEndDate" type="xs:date" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Expected duration of the contract</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="CreditCheckReference" type="String50" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Reference to creditcheck decision</xs:documentation>
    </xs:annotation>
   </xs:element>
  </xs:sequence>
 </xs:complexType>

CreditContract

 <xs:complexType name="CreditContract">
  <xs:sequence>
   <xs:element name="ContractTransactionInfo" type="ContractTransactionInfo" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Reference, identifyer etc. for the contracttransaction</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="Amount" type="Amount" nillable="false" minOccurs="1" maxOccurs="1"/>
  </xs:sequence>
 </xs:complexType>

ContractTransactionInfo

 <xs:complexType name="ContractTransactionInfo">
  <xs:sequence>
   <xs:element name="ContractId" type="xs:unsignedInt" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Unique identifier of each contract in the ledger</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="TransactionDate" type="xs:date" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Date of the contract, contract extend or when the credit was issued depending of the type of transaction</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="TransactionId" type="String50" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Unique identifier of all types of transactions (NewContract/ExtendContract/CreditTransaction) in the ledger</xs:documentation>
    </xs:annotation>
   </xs:element>
  </xs:sequence>
 </xs:complexType>

Version

 <xs:simpleType name="Version">
  <xs:restriction base="xs:string">
   <xs:enumeration value="1.0">
    <xs:annotation>
     <xs:documentation>Original version</xs:documentation>
    </xs:annotation>
   </xs:enumeration>
  </xs:restriction>
 </xs:simpleType>

eCurrencyType

 <xs:simpleType name="eCurrencyType">
  <xs:restriction base="xs:string">
   <xs:enumeration value="SEK"/>
   <xs:enumeration value="NOK"/>
   <xs:enumeration value="DKK"/>
   <xs:enumeration value="EUR"/>
  </xs:restriction>
 </xs:simpleType>

Identifier15

 <xs:simpleType name="Identifier15">
  <xs:restriction base="xs:string">
   <xs:minLength value="1"/>
   <xs:maxLength value="15"/>
   <xs:pattern value="[a-zA-Z0-9\-]*"/>
  </xs:restriction>
 </xs:simpleType>

ISO3166

 <xs:simpleType name="ISO3166">
  <xs:restriction base="xs:string">
   <xs:minLength value="2"/>
   <xs:maxLength value="2"/>
   <xs:pattern value="[A-Z]*"/>
  </xs:restriction>
 </xs:simpleType>

CompanyNumber

 <xs:simpleType name="CompanyNumber">
  <xs:restriction base="xs:string">
   <xs:minLength value="1"/>
   <xs:maxLength value="15"/>
   <xs:pattern value="[0-9]*"/>
  </xs:restriction>
 </xs:simpleType>

String35

 <xs:simpleType name="String35">
  <xs:restriction base="PXString">
   <xs:maxLength
        value="35"/>
  </xs:restriction>
 </xs:simpleType>

Email

 <xs:simpleType name="Email">
  <xs:restriction base="PXString">
   <xs:maxLength
        value="60"/>
   <xs:pattern value="[^@]+@[^\.]+\..+"/>
  </xs:restriction>
 </xs:simpleType>

String15

 <xs:simpleType name="String15">
  <xs:restriction base="PXString">
   <xs:maxLength value="15"/>
  </xs:restriction>
 </xs:simpleType>

ZipCode

 <xs:simpleType name="ZipCode">
  <xs:restriction base="xs:string">
   <xs:maxLength value="9"/>
   <xs:pattern value="[A-Z0-9\-]+"/>
  </xs:restriction>
 </xs:simpleType>

String50

 <xs:simpleType name="String50">
  <xs:restriction base="PXString">
   <xs:minLength value="1"/>
   <xs:maxLength
        value="50"/>
  </xs:restriction>
 </xs:simpleType>

String90

 <xs:simpleType name="String90">
  <xs:restriction base="PXString">
   <xs:minLength value="1"/>
   <xs:maxLength
        value="90"/>
  </xs:restriction>
 </xs:simpleType>

String20

 <xs:simpleType name="String20">
  <xs:restriction base="PXString">
   <xs:maxLength
        value="20"/>
  </xs:restriction>
 </xs:simpleType>

NameAddressString35

 <xs:simpleType name="NameAddressString35">
  <xs:restriction base="PXNameAddressString">
   <xs:minLength value="1"/>
   <xs:maxLength
        value="35"/>
  </xs:restriction>
 </xs:simpleType>

NameAddressString36

 <xs:simpleType name="NameAddressString36">
  <xs:restriction base="PXNameAddressString">
   <xs:minLength value="1"/>
   <xs:maxLength
        value="36"/>
  </xs:restriction>
 </xs:simpleType>

NameAddressString27

 <xs:simpleType name="NameAddressString27">
  <xs:restriction base="PXNameAddressString">
   <xs:minLength value="1"/>
   <xs:maxLength
        value="27"/>
  </xs:restriction>
 </xs:simpleType>

PXString

 <xs:simpleType name="PXString">
  <xs:restriction base="xs:string">
   <xs:pattern value="[a-zA-Z0-9_:!;"#<>=?\[\]@{}´ %'-0À-ÖØ-öø-ú&]*"/>
   <xs:minLength value="1"/>
  </xs:restriction>
 </xs:simpleType>

PXNameAddressString

 <xs:simpleType name="PXNameAddressString">
  <xs:restriction base="xs:string">
   <xs:pattern value="[a-zA-Z0-9_:!;"#<>=?\[\]@{}´ %'-0À-ÖØ-öø-úü&]*"/>
  </xs:restriction>
 </xs:simpleType>

RegNo

 <xs:complexType name="RegNo">
  <xs:simpleContent>
   <xs:extension base="String15">
    <xs:attribute name="CountryCode" type="ISO3166"/>
   </xs:extension>
  </xs:simpleContent>
 </xs:complexType>

LegalEntity

 <xs:simpleType name="LegalEntity">
  <xs:restriction base="xs:string">
   <xs:enumeration value="Private"/>
  </xs:restriction>
 </xs:simpleType>

PXExpiryDate

 <xs:simpleType name="PXExpiryDate">
  <xs:restriction base="xs:string">
   <xs:length value="5"/>
   <xs:pattern value="(0[1-9]|1[012])/(\d{2})"/>
  </xs:restriction>
 </xs:simpleType>

NameAddressString72

 <xs:simpleType name="NameAddressString72">
  <xs:restriction base="PXNameAddressString">
   <xs:minLength value="1"/>
   <xs:maxLength
        value="72"/>
  </xs:restriction>
 </xs:simpleType>

Address

 <xs:complexType name="Address">
  <xs:sequence>
   <xs:element name="Addressee" type="NameAddressString72" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Full name of addressee</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="StreetAddress" type="NameAddressString35" nillable="false" minOccurs="0" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Street address</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="ZipCode" type="ZipCode" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Zipcode conforming to country standard</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="City" type="NameAddressString27" nillable="false" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>City</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="CoAddress" type="NameAddressString35" nillable="false" minOccurs="0" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Care of address</xs:documentation>
    </xs:annotation>
   </xs:element>
   <xs:element name="CountryCode" type="ISO3166" minOccurs="1" maxOccurs="1">
    <xs:annotation>
     <xs:documentation>Country code according to ISO 3166</xs:documentation>
    </xs:annotation>
   </xs:element>
  </xs:sequence>
 </xs:complexType>

 

Created by David Persson on 2020/06/26 00:38