对接前请准备好以下工具和文件,所有资源都可以直接获取,无额外付费要求:
sudo apt install openjdk-17-jdk安装,Windows用户直接从https://adoptium.net/temurin/releases/下载对应安装包,默认下一步安装即可如果是Maven项目,直接把以下依赖复制到pom.xml的dependencies节点下,用于XML解析和合规校验:
```电子档案交换规范要求固定目录结构,直接按照以下结构创建即可,所有名称必须小写,禁止使用中文空格和特殊字符:
metadata.xml必须严格遵循XSD约束,以下是可直接复用的完整模板,替换括号外的占位内容即可:
```
说明:每个实体文件必须计算MD5值填入对应节点,用于接收方校验文件完整性,不能省略;totalCount填本次交换的档案总数量,totalSize填所有文件总大小,单位为KB。
编写完成后,先做本地校验避免被接收方驳回,以下是可直接运行的校验代码,复制到项目中即可使用:
``` import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; import java.io.File; public class ExchangeValidator { public static boolean validate(String xmlPath, String xsdPath) throws Exception { SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/XML/XMLSchema/v1.1"); Schema schema = factory.newSchema(new File(xsdPath)); Validator validator = schema.newValidator(); Source source = new StreamSource(new File(xmlPath)); try { validator.validate(source); return true; } catch (Exception e) { System.out.println("校验不通过,原因:" + e.getMessage()); return false; } } public static void main(String[] args) { // 替换为你本地的实际文件路径 String xmlPath = "D:/exchange/11010000_2024_000001/metadata.xml"; String xsdPath = "D:/exchange/ebexchange.xsd"; try { boolean result = ExchangeValidator.validate(xmlPath, xsdPath); System.out.println("校验结果:" + (result ? "合规" : "不合规")); } catch (Exception e) { e.printStackTrace(); } } } ```运行main方法,输出“合规”说明元数据符合规范,根据错误提示修改对应内容即可。
校验通过后,直接打包交换目录:必须使用标准ZIP压缩格式,禁止使用RAR、7Z等其他格式;压缩时不能嵌套根目录,即解压后直接得到metadata.xml和content目录,不能出现一层额外的同名根文件夹。
完成打包后,执行以下三步做最终验证: 1. 将压缩包重新解压到新的空白目录 2. 重新运行本地校验代码,确认输出合规 3. 随机抽取1-2个档案文件,重新计算MD5比对确认一致 完成以上三步即可交付,接收方可以直接按照规范解析交换包,不会出现对接错误。