java - 关于附件部分的问题。附件是按什么顺序来的?
问题描述
我有调用包含附件的 SOAP Web 服务的代码。这是我获取附件的Java代码(其中的一部分)
Iterator<?> i = soapResponse.getAttachments();
Object obj = null;
while (i.hasNext()) {
System.out.println("file found");
AttachmentPart att = (AttachmentPart) i.next();
//now I want to use the DocumentID tag(from the XML response) of this
// attachment )
当我在 SOAP UI 中调用 SOAP Web 服务时,这里是对应于附件的 XML 响应部分
<ns2:result xsi:type="ns0:DocumentDetails" xmlns:ns2="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/" xmlns:ns1="http://xmlns.oracle.com/adf/svc/types/" xmlns:ns0="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns0:Content>
<xop:Include href="cid:e01fe52d-2ddf-4ad0-a556-f5ecc0f313ce" xmlns:xop="http://www.w3.org/2004/08/xop/include"/>
</ns0:Content>
<ns0:FileName xsi:nil="true"/>
<ns0:ContentType xsi:nil="true"/>
<ns0:DocumentTitle>CWT_BTA_ORCLGB-20190604.zip</ns0:DocumentTitle>
<ns0:DocumentAuthor>madeUpEmail@oracle.com</ns0:DocumentAuthor>
<ns0:DocumentSecurityGroup>FAFusionImportExport</ns0:DocumentSecurityGroup>
<ns0:DocumentAccount>prj$/projectFoundation$/import$</ns0:DocumentAccount>
<ns0:DocumentName>CWT_BTA_ORCLGB-20190604.zip</ns0:DocumentName>
<ns0:DocumentId>32331748</ns0:DocumentId>
</ns2:result>
<ns2:result xsi:type="ns0:DocumentDetails" xmlns:ns2="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/" xmlns:ns1="http://xmlns.oracle.com/adf/svc/types/" xmlns:ns0="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns0:Content>
<xop:Include href="cid:bbbbc837-f738-4a86-8721-d06f6fb0fa16" xmlns:xop="http://www.w3.org/2004/08/xop/include"/>
</ns0:Content>
<ns0:FileName xsi:nil="true"/>
<ns0:ContentType xsi:nil="true"/>
<ns0:DocumentTitle>CWT_BTA_ORCLUS-20190705.zip</ns0:DocumentTitle>
<ns0:DocumentAuthor>madeupEmail@oracle.com</ns0:DocumentAuthor>
<ns0:DocumentSecurityGroup>FAFusionImportExport</ns0:DocumentSecurityGroup>
<ns0:DocumentAccount>prj$/projectFoundation$/import$</ns0:DocumentAccount>
<ns0:DocumentName>CWT_BTA_ORCLUS-20190705.zip</ns0:DocumentName>
<ns0:DocumentId>32331767</ns0:DocumentId>
如您所见,有两个附件: CWT_BTA_ORCLGB-20190604.zip 和 CWT_BTA_ORCLUS-20190705.zip ,包含在 DocumentName 标记中,但它们也有 DocumentID
我的问题是,我的 java 代码中附件的顺序(我上面的 while 循环)是否与 XML 响应中的顺序相同?我计划解析 XML 响应以获取数组中的 DocumentID,然后在 while 循环内遍历该数组以获取每个附件的相应“documentID”
解决方案
假设您使用多部分 MIME ...
回复: https ://www.w3.org/TR/SOAP-attachments
上述参考表明,链接可以从 Document-ID 或 Content-Location(绝对或相对)到其他 MIME 附件。本说明或 W3C 建议(我能找到)中没有任何内容表明存在预期或必需的附件顺序。
我建议将 SOAP 消息中的 Document-ID 与 MIME 部分中的 Document-ID 匹配。
推荐阅读
- function - Stm Cube IDE ERROR:函数比较错误
- mysql - 是否可以在 MySQL 中使用绕过行的查询(如果重复)并获取最后一个?
- reactjs - 在具有状态的其他组件中重用变量
- flutter - 有没有办法获取应用程序的早期版本或知道它是否已更新或下载?
- python - 如何用两个不同的 X_train 数据预测 Y_train
- r - 如何为意大利面条图准备数据
- c# - 类型或命名空间定义,或预期文件结尾和类记录中的无效标记“else”
- android - 由于使用 kotlin 的 android 应用程序开发中的接收器类型不匹配,我收到错误
- flutter - Flutter:键盘隐藏的TextFormField
- oracle - Oracle中ascii函数的反转