Files
meta-plugin/docs/hvps.101.001.01.xsd
2026-04-15 16:04:29 +08:00

218 lines
8.5 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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>