使用 Strong-soap 节点模块,它没有为元素的属性添加命名空间
Using Strong-soap node module, It is not adding namespace to the attributes of the elements
使用 Strong-soap 节点模块,它没有向元素的属性添加命名空间,因此我收到错误 - 无效属性。
<ns1:Put_Applicant_Request xmlns:ns1="urn:com.workday/bsvc" version="v23.0">
<ns1:Applicant_Data>
<ns1:Personal_Data>
<ns1:Name_Data>
<ns1:Legal_Name_Data>
<ns1:Name_Detail_Data>
<ns1:Country_Reference Descriptor="?">
<ns1:ID ns1:type="ISO_3166-1_Alpha-3_Code">USA</ns1:ID>
</ns1:Country_Reference>
<ns1:First_Name>Lionel</ns1:First_Name>
<ns1:Last_Name>Messi</ns1:Last_Name>
</ns1:Name_Detail_Data>
</ns1:Legal_Name_Data>
</ns1:Name_Data>
<ns1:Contact_Data>
<ns1:Email_Address_Data>
<ns1:Email_Address>lmessi@email.net</ns1:Email_Address>
<ns1:Usage_Data ns1:Public="false">
<ns1:Type_Data ns1:Primary="true">
<ns1:Type_Reference ns1:Descriptor="?">
<ns1:ID ns1:type="Communication_Usage_Type_ID">HOME</ns1:ID>
</ns1:Type_Reference>
</ns1:Type_Data>
</ns1:Usage_Data>
</ns1:Email_Address_Data>
</ns1:Contact_Data>
</ns1:Personal_Data>
<ns1:Recruiting_Data>
<ns1:Positions_Considered_for_Reference ns1:Descriptor="?">
<ns1:ID ns1:type="Position_ID">P-00054</ns1:ID>
</ns1:Positions_Considered_for_Reference>
</ns1:Recruiting_Data>
</ns1:Applicant_Data>
</ns1:Put_Applicant_Request>
现在,使用 xml2json 实用程序,我将其转换为 JSON,如下所示:
Body: { Put_Applicant_Request:
{ '$attributes': { version: 'v23.0' },
Applicant_Data:
{ Personal_Data:
{ Name_Data:
{ Legal_Name_Data:
{ Name_Detail_Data:
{ Country_Reference:
{ '$attributes': { "xmlns": "urn:com.workday/bsvc",Descriptor: '?' },
ID:
{ '$attributes': { type: 'ISO_3166-1_Alpha-3_Code' },
'$value': 'USA' } },
First_Name: 'Lionel',
Last_Name: 'Messi' } } },
Contact_Data:
{ Email_Address_Data:
{ Email_Address: 'lmessi@email.net',
Usage_Data:
{ '$attributes': { Public: 'false' },
Type_Data:
{ '$attributes': { Primary: 'true' },
Type_Reference:
{ '$attributes': { Descriptor: '?' },
ID:
{ '$attributes': { type: 'Communication_Usage_Type_ID' },
'$value': 'HOME' } } } } } } },
Recruiting_Data:
{ Positions_Considered_for_Reference:
{ '$attributes': { Descriptor: '?' },
ID: { '$attributes': { type: 'Position_ID' }, '$value': 'P-00054' } } } } } } }
将此输入传递给节点模块,生成的有效负载如下所示,它没有属性标记的命名空间,因此出现错误:
<soap:Body>
<ns1:Put_Applicant_Request xmlns:ns1="urn:com.workday/bsvc" version="v23.0">
<ns1:Applicant_Data>
<ns1:Personal_Data>
<ns1:Name_Data>
<ns1:Legal_Name_Data>
<ns1:Name_Detail_Data>
<ns1:Country_Reference xmlns="urn:com.workday/bsvc11" Descriptor="?">
<ns1:ID type="ISO_3166-1_Alpha-3_Code">USA</ns1:ID>
</ns1:Country_Reference>
<ns1:First_Name>Lionel</ns1:First_Name>
<ns1:Last_Name>Messi</ns1:Last_Name>
</ns1:Name_Detail_Data>
</ns1:Legal_Name_Data>
</ns1:Name_Data>
<ns1:Contact_Data>
<ns1:Email_Address_Data>
<ns1:Email_Address>lmessi@email.net</ns1:Email_Address>
<ns1:Usage_Data Public="false">
<ns1:Type_Data Primary="true">
<ns1:Type_Reference Descriptor="?">
<ns1:ID type="Communication_Usage_Type_ID">HOME</ns1:ID>
</ns1:Type_Reference>
</ns1:Type_Data>
</ns1:Usage_Data>
</ns1:Email_Address_Data>
</ns1:Contact_Data>
</ns1:Personal_Data>
<ns1:Recruiting_Data>
<ns1:Positions_Considered_for_Reference Descriptor="?">
<ns1:ID type="Position_ID">P-00054</ns1:ID>
</ns1:Positions_Considered_for_Reference>
</ns1:Recruiting_Data>
</ns1:Applicant_Data>
</ns1:Put_Applicant_Request>
我遇到以下错误:
<SOAP-ENV:Fault xmlns:wd="urn:com.workday/bsvc">
<faultcode>SOAP-ENV:Client.validationError</faultcode>
<faultstring>Validation error occurred. Invalid Attribute Descriptor- for element Person_Name_Detail_Data (6160)</faultstring>
<detail>
<wd:Validation_Fault>
<wd:Validation_Error>
<wd:Message>Invalid Attribute Descriptor- for element Person_Name_Detail_Data (6160)</wd:Message>
<wd:Detail_Message>Invalid Attribute Descriptor- for element Person_Name_Detail_Data (6160)</wd:Detail_Message>
<wd:Xpath>/ns1:Put_Applicant_Request[1]/ns1:Applicant_Data[1]/ns1:Personal_Data[1]/ns1:Name_Data[1]/ns1:Legal_Name_Data[1]/ns1:Name_Detail_Data[1]/ns1:Country_Reference[1]/@Descriptor</wd:Xpath>
</wd:Validation_Error>
</wd:Validation_Fault>
</detail>
</SOAP-ENV:Fault>
关于如何解决此问题的任何指示?
我在节点模块存储库下提出了一个问题,现在已由存储库所有者修复。请参阅问题 - https://github.com/strongloop/strong-soap/issues/134 了解有关修复的更多详细信息。
使用 Strong-soap 节点模块,它没有向元素的属性添加命名空间,因此我收到错误 - 无效属性。
<ns1:Put_Applicant_Request xmlns:ns1="urn:com.workday/bsvc" version="v23.0">
<ns1:Applicant_Data>
<ns1:Personal_Data>
<ns1:Name_Data>
<ns1:Legal_Name_Data>
<ns1:Name_Detail_Data>
<ns1:Country_Reference Descriptor="?">
<ns1:ID ns1:type="ISO_3166-1_Alpha-3_Code">USA</ns1:ID>
</ns1:Country_Reference>
<ns1:First_Name>Lionel</ns1:First_Name>
<ns1:Last_Name>Messi</ns1:Last_Name>
</ns1:Name_Detail_Data>
</ns1:Legal_Name_Data>
</ns1:Name_Data>
<ns1:Contact_Data>
<ns1:Email_Address_Data>
<ns1:Email_Address>lmessi@email.net</ns1:Email_Address>
<ns1:Usage_Data ns1:Public="false">
<ns1:Type_Data ns1:Primary="true">
<ns1:Type_Reference ns1:Descriptor="?">
<ns1:ID ns1:type="Communication_Usage_Type_ID">HOME</ns1:ID>
</ns1:Type_Reference>
</ns1:Type_Data>
</ns1:Usage_Data>
</ns1:Email_Address_Data>
</ns1:Contact_Data>
</ns1:Personal_Data>
<ns1:Recruiting_Data>
<ns1:Positions_Considered_for_Reference ns1:Descriptor="?">
<ns1:ID ns1:type="Position_ID">P-00054</ns1:ID>
</ns1:Positions_Considered_for_Reference>
</ns1:Recruiting_Data>
</ns1:Applicant_Data>
</ns1:Put_Applicant_Request>
现在,使用 xml2json 实用程序,我将其转换为 JSON,如下所示:
Body: { Put_Applicant_Request:
{ '$attributes': { version: 'v23.0' },
Applicant_Data:
{ Personal_Data:
{ Name_Data:
{ Legal_Name_Data:
{ Name_Detail_Data:
{ Country_Reference:
{ '$attributes': { "xmlns": "urn:com.workday/bsvc",Descriptor: '?' },
ID:
{ '$attributes': { type: 'ISO_3166-1_Alpha-3_Code' },
'$value': 'USA' } },
First_Name: 'Lionel',
Last_Name: 'Messi' } } },
Contact_Data:
{ Email_Address_Data:
{ Email_Address: 'lmessi@email.net',
Usage_Data:
{ '$attributes': { Public: 'false' },
Type_Data:
{ '$attributes': { Primary: 'true' },
Type_Reference:
{ '$attributes': { Descriptor: '?' },
ID:
{ '$attributes': { type: 'Communication_Usage_Type_ID' },
'$value': 'HOME' } } } } } } },
Recruiting_Data:
{ Positions_Considered_for_Reference:
{ '$attributes': { Descriptor: '?' },
ID: { '$attributes': { type: 'Position_ID' }, '$value': 'P-00054' } } } } } } }
将此输入传递给节点模块,生成的有效负载如下所示,它没有属性标记的命名空间,因此出现错误:
<soap:Body>
<ns1:Put_Applicant_Request xmlns:ns1="urn:com.workday/bsvc" version="v23.0">
<ns1:Applicant_Data>
<ns1:Personal_Data>
<ns1:Name_Data>
<ns1:Legal_Name_Data>
<ns1:Name_Detail_Data>
<ns1:Country_Reference xmlns="urn:com.workday/bsvc11" Descriptor="?">
<ns1:ID type="ISO_3166-1_Alpha-3_Code">USA</ns1:ID>
</ns1:Country_Reference>
<ns1:First_Name>Lionel</ns1:First_Name>
<ns1:Last_Name>Messi</ns1:Last_Name>
</ns1:Name_Detail_Data>
</ns1:Legal_Name_Data>
</ns1:Name_Data>
<ns1:Contact_Data>
<ns1:Email_Address_Data>
<ns1:Email_Address>lmessi@email.net</ns1:Email_Address>
<ns1:Usage_Data Public="false">
<ns1:Type_Data Primary="true">
<ns1:Type_Reference Descriptor="?">
<ns1:ID type="Communication_Usage_Type_ID">HOME</ns1:ID>
</ns1:Type_Reference>
</ns1:Type_Data>
</ns1:Usage_Data>
</ns1:Email_Address_Data>
</ns1:Contact_Data>
</ns1:Personal_Data>
<ns1:Recruiting_Data>
<ns1:Positions_Considered_for_Reference Descriptor="?">
<ns1:ID type="Position_ID">P-00054</ns1:ID>
</ns1:Positions_Considered_for_Reference>
</ns1:Recruiting_Data>
</ns1:Applicant_Data>
</ns1:Put_Applicant_Request>
我遇到以下错误:
<SOAP-ENV:Fault xmlns:wd="urn:com.workday/bsvc">
<faultcode>SOAP-ENV:Client.validationError</faultcode>
<faultstring>Validation error occurred. Invalid Attribute Descriptor- for element Person_Name_Detail_Data (6160)</faultstring>
<detail>
<wd:Validation_Fault>
<wd:Validation_Error>
<wd:Message>Invalid Attribute Descriptor- for element Person_Name_Detail_Data (6160)</wd:Message>
<wd:Detail_Message>Invalid Attribute Descriptor- for element Person_Name_Detail_Data (6160)</wd:Detail_Message>
<wd:Xpath>/ns1:Put_Applicant_Request[1]/ns1:Applicant_Data[1]/ns1:Personal_Data[1]/ns1:Name_Data[1]/ns1:Legal_Name_Data[1]/ns1:Name_Detail_Data[1]/ns1:Country_Reference[1]/@Descriptor</wd:Xpath>
</wd:Validation_Error>
</wd:Validation_Fault>
</detail>
</SOAP-ENV:Fault>
关于如何解决此问题的任何指示?
我在节点模块存储库下提出了一个问题,现在已由存储库所有者修复。请参阅问题 - https://github.com/strongloop/strong-soap/issues/134 了解有关修复的更多详细信息。