Skip to content

Instantly share code, notes, and snippets.

@crutch12
Created May 4, 2022 15:51
Show Gist options
  • Save crutch12/c7e296f8f19af69b2f4f3812c6c17d85 to your computer and use it in GitHub Desktop.
Save crutch12/c7e296f8f19af69b2f4f3812c6c17d85 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://some/awesome/schema">
<xs:element name="REQUEST">
<xs:complexType>
<xs:sequence>
<xs:element name="LOGIN">
<xs:complexType>
<xs:choice>
<xs:element name="API_TOKEN">
<xs:annotation>
<xs:documentation>Used to authenticate a request as vendor sees fit.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="USER">
<xs:complexType>
<xs:attribute name="user_name" type="xs:string" use="required"/>
<xs:attribute name="password" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="lender_code" use="required">
<xs:annotation>
<xs:documentation>Used to identify lender on LPQ system.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="TESTFI_Lender1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="CURRENT_USER">
<xs:complexType>
<xs:sequence>
<xs:element name="USERLOGIN">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="NAME">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ACTION">
<xs:complexType>
<xs:sequence>
<xs:element name="NEW_TRANSACTION">
<xs:complexType>
<xs:sequence>
<xs:element name="APP_DATA" minOccurs="0">
<xs:annotation>
<xs:documentation>App data can contain CLF Data, and/or a dictionary.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="CLF_DATA" minOccurs="0">
<xs:complexType mixed="true">
<xs:attribute name="encoding" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="base64"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="DICTIONARY" minOccurs="0">
<xs:annotation>
<xs:documentation>Can be used for simple app data in place of CLF, or additional meta data.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="FIELD" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="key" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="template" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ASG"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="EXISTING_TRANSACTION">
<xs:annotation>
<xs:documentation>For asynchronous processing, will help identify prior transaction to check upon for completion.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="transaction_id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Depending on context, this should be default to be same as lpq_transaction_id. However, this can be different if needed by vendor to send vendor's transaction id which may differe from lpq transactiion id. In such case, vendor will need to provide transcation id information in the response and require custom parsing on LPQ side.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="service_type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="GET_QUOTE"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="version" use="required">
<xs:simpleType>
<xs:restriction base="xs:float">
<xs:enumeration value="1.0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="lpq_transaction_id" use="required">
<xs:annotation>
<xs:documentation>LPQ transaction id that was passed over on first request.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="32"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment