218 lines
8.5 KiB
XML
218 lines
8.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<xs:schema xmlns="urn:cnaps:std:hvps:2010:tech:xsd:hvps.111.001.01"
|
||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||
targetNamespace="urn:cnaps:std:hvps:2010:tech:xsd:hvps.111.001.01"
|
||
elementFormDefault="qualified">
|
||
|
||
<!-- 根节点 Document -->
|
||
<xs:element name="Document" type="Document"/>
|
||
|
||
<!-- 1. 文档结构 -->
|
||
<xs:complexType name="Document">
|
||
<xs:sequence>
|
||
<xs:element name="FIToFICstmrCdtTrf" type="FIToFICstmrCdtTrf"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<!-- 2. 金融机构间客户汇兑主体 (大额汇兑) -->
|
||
<xs:complexType name="FIToFICstmrCdtTrf">
|
||
<xs:sequence>
|
||
<!-- 业务公共报头 -->
|
||
<xs:element name="GrpHdr" type="GroupHeader"/>
|
||
<!-- 资金交易明细 (大额报文通常只有一笔明细) -->
|
||
<xs:element name="CdtTrfTxInf" type="CreditTransferTransactionInformation" maxOccurs="unbounded"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<!-- 3. 业务头 (Group Header) -->
|
||
<xs:complexType name="GroupHeader">
|
||
<xs:sequence>
|
||
<xs:element name="MsgId" type="Max35Text"/> <!-- 报文标识号 -->
|
||
<xs:element name="CreDtTm" type="ISODateTime"/> <!-- 报文创建时间 -->
|
||
<xs:element name="InstgPty" type="InstructingParty"/> <!-- 发起参与机构 -->
|
||
<xs:element name="InstdPty" type="InstructedParty"/> <!-- 接收参与机构 -->
|
||
<xs:element name="SysCd" type="SystemCode"/> <!-- 系统代码 (如 HVPS) -->
|
||
<xs:element name="Rmk" type="Max256Text" minOccurs="0"/> <!-- 备注 -->
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<!-- 4. 汇兑交易信息 (Transaction Information) -->
|
||
<xs:complexType name="CreditTransferTransactionInformation">
|
||
<xs:sequence>
|
||
<xs:element name="PmtId" type="PaymentIdentification"/> <!-- 支付标识 -->
|
||
<xs:element name="PmtTpInf" type="PaymentTypeInformation" minOccurs="0"/> <!-- 支付类型信息 (业务种类) -->
|
||
<xs:element name="IntrBkSttlmAmt" type="ActiveCurrencyAndAmount"/> <!-- 银行间结算金额 -->
|
||
<xs:element name="Dbtr" type="PartyIdentification"/> <!-- 付款人 -->
|
||
<xs:element name="DbtrAcct" type="CashAccount" minOccurs="0"/> <!-- 付款人账户 -->
|
||
<xs:element name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification"/> <!-- 付款行 -->
|
||
<xs:element name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification"/> <!-- 收款行 -->
|
||
<xs:element name="Cdtr" type="PartyIdentification"/> <!-- 收款人 -->
|
||
<xs:element name="CdtrAcct" type="CashAccount"/> <!-- 收款人账户 -->
|
||
<xs:element name="Purp" type="Purpose" minOccurs="0"/> <!-- 用途/附言 -->
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<!-- ==== 以下为子组件装配定义 ==== -->
|
||
<xs:complexType name="PaymentIdentification">
|
||
<xs:sequence>
|
||
<xs:element name="EndToEndId" type="Max35Text"/> <!-- 端到端标识号 -->
|
||
<xs:element name="TxId" type="Max35Text"/> <!-- 交易标识号 -->
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="InstructingParty">
|
||
<xs:sequence>
|
||
<xs:element name="InstgDrctPty" type="Max14Text"/> <!-- 发起直接参与机构 (14位行号) -->
|
||
<xs:element name="InstgPty" type="Max14Text" minOccurs="0"/> <!-- 发起间接参与机构 -->
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="InstructedParty">
|
||
<xs:sequence>
|
||
<xs:element name="InstdDrctPty" type="Max14Text"/> <!-- 接收直接参与机构 (14位行号) -->
|
||
<xs:element name="InstdPty" type="Max14Text" minOccurs="0"/> <!-- 接收间接参与机构 -->
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="PartyIdentification">
|
||
<xs:sequence>
|
||
<xs:element name="Nm" type="Max60Text"/> <!-- 户名 -->
|
||
<xs:element name="PstlAdr" type="PostalAddress" minOccurs="0"/> <!-- 地址 -->
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="CashAccount">
|
||
<xs:sequence>
|
||
<xs:element name="Id" type="AccountIdentification"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="AccountIdentification">
|
||
<xs:sequence>
|
||
<xs:element name="Othr" type="GenericAccountIdentification"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="GenericAccountIdentification">
|
||
<xs:sequence>
|
||
<xs:element name="Id" type="Max32Text"/> <!-- 账号 (一般最长32位) -->
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="BranchAndFinancialInstitutionIdentification">
|
||
<xs:sequence>
|
||
<xs:element name="FinInstnId" type="FinancialInstitutionIdentification"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="FinancialInstitutionIdentification">
|
||
<xs:sequence>
|
||
<xs:element name="ClrSysMmbId" type="ClearingSystemMemberIdentification"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="ClearingSystemMemberIdentification">
|
||
<xs:sequence>
|
||
<xs:element name="MmbId" type="Max14Text"/> <!-- CNAPS 14位支付行号 -->
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="PaymentTypeInformation">
|
||
<xs:sequence>
|
||
<xs:element name="CtgyPurp" type="CategoryPurpose"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="CategoryPurpose">
|
||
<xs:sequence>
|
||
<xs:element name="Prtry" type="Max5Text"/> <!-- 二代支付中业务种类为最多5位数字,如大额A100 -->
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="Purpose">
|
||
<xs:sequence>
|
||
<xs:element name="Prtry" type="Max256Text"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<xs:complexType name="PostalAddress">
|
||
<xs:sequence>
|
||
<xs:element name="AdrLine" type="Max256Text" minOccurs="0" maxOccurs="2"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
|
||
<!-- ==== 以下为基本数据类型 (Simple Types) ==== -->
|
||
<xs:simpleType name="Max35Text">
|
||
<xs:restriction base="xs:string">
|
||
<xs:minLength value="1"/>
|
||
<xs:maxLength value="35"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
|
||
<xs:simpleType name="Max32Text">
|
||
<xs:restriction base="xs:string">
|
||
<xs:minLength value="1"/>
|
||
<xs:maxLength value="32"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
|
||
<xs:simpleType name="Max14Text">
|
||
<xs:restriction base="xs:string">
|
||
<xs:length value="14"/> <!-- 人行行号通常定长14位 -->
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
|
||
<xs:simpleType name="Max5Text">
|
||
<xs:restriction base="xs:string">
|
||
<xs:minLength value="1"/>
|
||
<xs:maxLength value="5"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
|
||
<xs:simpleType name="Max60Text">
|
||
<xs:restriction base="xs:string">
|
||
<xs:minLength value="1"/>
|
||
<xs:maxLength value="60"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
|
||
<xs:simpleType name="Max256Text">
|
||
<xs:restriction base="xs:string">
|
||
<xs:minLength value="1"/>
|
||
<xs:maxLength value="256"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
|
||
<xs:simpleType name="SystemCode">
|
||
<xs:restriction base="xs:string">
|
||
<xs:enumeration value="HVPS"/> <!-- 单笔大额 -->
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
|
||
<xs:simpleType name="ISODateTime">
|
||
<xs:restriction base="xs:dateTime"/>
|
||
</xs:simpleType>
|
||
|
||
<!-- 人民币金额类型定义 -->
|
||
<xs:complexType name="ActiveCurrencyAndAmount">
|
||
<xs:simpleContent>
|
||
<xs:extension base="ActiveCurrencyAndAmount_SimpleType">
|
||
<xs:attribute name="Ccy" type="ActiveCurrencyCode" use="required"/>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
|
||
<xs:simpleType name="ActiveCurrencyAndAmount_SimpleType">
|
||
<xs:restriction base="xs:decimal">
|
||
<xs:fractionDigits value="2"/>
|
||
<xs:totalDigits value="18"/>
|
||
<xs:minInclusive value="0.01"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
|
||
<xs:simpleType name="ActiveCurrencyCode">
|
||
<xs:restriction base="xs:string">
|
||
<xs:pattern value="[A-Z]{3,3}"/> <!-- 绝大多数情况为 CNY -->
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:schema> |