如何手动构建AdhocQueryRequest。WSDLImporert失败

时间:2019-05-12 10:03:54

标签: delphi wsdl adhoc-queries

我尝试导入包含“ AdhocQuery”的wsdl,而wsdl导入器由于“ dclsoap230.bpl”中的访问冲突错误而失败。现在我正在尝试手动构建类。

当前代码

AdhocQuery = class; { "urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"[GblElm] }
ValueType = array of WideString;

ValueListType = class(TRemotable)
private
FValue: ValueType;
published
property Value: ValueType read FValue write FValue;
end;

SlotType = class(TRemotable)
private
fname: WideString;
FValueList: ValueListtype;
published
property name: WideString index (IS_ATTR)read fname write fname;
property ValueList: ValueListType read FValueList write FValueList;
end;Slots = array of SlotType;

AdhocQuery = class(TRemotable)
private
FID: WideString;
FSlot: Slots;
public
published
property id: WideString index (IS_ATTR or IS_OPTN)read FID write FID;
property Slot: Slots read FSlot write FSlot;//problem proint
end;

RemClassRegistry.RegisterXSClass(AdhocQuery, 'urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0', 'AdhocQuery');  //...so on

我当前的代码输出

<AdhocQueryRequest xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0">
<ResponseOption returnType="LeafClass" returnComposedObjects="true"/>
<AdhocQuery id="urn:uuid:14d4debf-8f97-4251-9a74-xxxxxx">
<Slot xmlns="urn:MyHR.base">
<Slottype xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" name="$XDSDocumentEntryPatientId">
<ValueList xmlns="urn:MyHR.base">
<Value>  <string>'somestr^^^&amp;somestr&amp;ISO'</string></Value>
</ValueList>
</Slottype></Slot></AdhocQuery></AdhocQueryRequest>

预期产量

<AdhocQueryRequest xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0">
<ResponseOption returnType="LeafClass" returnComposedObjects="true" />
<AdhocQuery id="urn:uuid:14d4debf-8f97-4251-9a74-xxxxxx" xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0">
<Slot name="$XDSDocumentEntryPatientId"><ValueList><Value>'somestr^^^&amp;somestr&amp;ISO'</Value></ValueList></Slot>
<Slot name="$XDSDocumentEntryStatus"><ValueList><Value>('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')</Value></ValueList></Slot>
<Slot name="$XDSDocumentEntryClassCode"><ValueList><Value>('somestr')</Value></ValueList></Slot>
</AdhocQuery></AdhocQueryRequest>

WSDL文件https://drive.google.com/open?id=1J2BFXdQyps7gNsRMzmzxRbqdKvxmXKgV

  1. 如何获取广告位(数组)到 AdhocQuery 中?
  2. 如何获取 xmlns =“ urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0” 作为 AdhocQuery 的属性?

0 个答案:

没有答案