Web services 使用SAS 9.2从web服务检索值数组
我正在使用SAS 9.2,并试图从.NET web服务检索一个长值数组。这是我的设置和呼叫:Web services 使用SAS 9.2从web服务检索值数组,web-services,sas,Web Services,Sas,我正在使用SAS 9.2,并试图从.NET web服务检索一个长值数组。这是我的设置和呼叫: filename websvc url 'http://path.to/my/webservice?WSDL'; libname websvc xml92 xmltype=WSDL; Data d; dataSchema = "blah"; module = "blah"; run; data strata; SET websvc.GetStrataForModuleResp
filename websvc url 'http://path.to/my/webservice?WSDL';
libname websvc xml92 xmltype=WSDL;
Data d;
dataSchema = "blah";
module = "blah";
run;
data strata;
SET websvc.GetStrataForModuleResponse(parms=d);
run;
当我在没有SAS的情况下手动调用它时,webservice返回如下XML:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfLong>
<long>1</long>
</ArrayOfLong>
1.
注意,我从上面的代码片段中截取了xmlns内容
当我从SAS调用web服务时,我得到一个数据集,其中包含1个变量和1个观察值。变量名为“datatype=string”,值为空。有了这些参数,我就可以得到上面所看到的
我希望看到一个包含1个变量和1个观测值的数据集,其中变量名为long,观测值为1
这里有我遗漏的东西吗
提前谢谢 SAS libname引擎在所需的结构中受到很大限制。如果您的XML不符合所需的结构,则需要创建一个XML来告诉SAS如何读取XML文件。最简单的方法是使用SAS XML映射器。对于您当前的服务,XML映射如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<SXLEMAP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="webservice" version="1.2" xsi:noNamespaceSchemaLocation="http://www.sas.com/xml/schema/sxle12.xsd">
<TABLE name="ArrayOfLong">
<TABLE-PATH syntax="XPath">/ArrayOfLong</TABLE-PATH>
<COLUMN name="long">
<PATH syntax="XPath">/ArrayOfLong/long</PATH>
<TYPE>numeric</TYPE>
<DATATYPE>integer</DATATYPE>
</COLUMN>
</TABLE>
</SXLEMAP>
SAS libname引擎在所需的结构中受到很大限制。如果您的XML不符合所需的结构,则需要创建一个XML来告诉SAS如何读取XML文件。最简单的方法是使用SAS XML映射器。对于您当前的服务,XML映射如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<SXLEMAP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="webservice" version="1.2" xsi:noNamespaceSchemaLocation="http://www.sas.com/xml/schema/sxle12.xsd">
<TABLE name="ArrayOfLong">
<TABLE-PATH syntax="XPath">/ArrayOfLong</TABLE-PATH>
<COLUMN name="long">
<PATH syntax="XPath">/ArrayOfLong/long</PATH>
<TYPE>numeric</TYPE>
<DATATYPE>integer</DATATYPE>
</COLUMN>
</TABLE>
</SXLEMAP>
谢谢Laurent,我会试试看!只是尝试了一下,在SAS 9.2中,我似乎无法将xmlmap=与xmltype=WSDL一起使用。“请求的选项无效或不支持请求的xmltype”。:(有什么想法吗?好的,我没想到会这样,但是已经有文档记录了。在分配libname之后,proc数据集的结果是什么?(proc datasets library=webvc details;run;)谢谢Laurent,我会尝试一下!只是尝试了一下,在SAS 9.2中,我似乎无法将xmlmap=与xmltype=WSDL一起使用。“请求的选项无效或不支持请求的xmltype”。(有什么想法吗?好的,没有预料到,但它已被记录在案。分配libname后,proc数据集的结果是什么?(proc数据集库=websvc详细信息;运行;)