【发布时间】:2012-04-14 04:28:16
【问题描述】:
我需要将我的 XML 数据转换为 ADO 记录集。我能够为转换构造 ADO Persistant XML 格式,但我不太清楚为什么我的 XML 中的单行被忽略。生成的最终记录集的 EOF 和 BOF 都为真,并且 RecordCount 为 0,但这是不正确的,因为我的 XML 确实包含一行,如下面的 XMl 所示。知道我在这方面可能有什么问题吗?
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='AddressObject' content='eltOnly'>
<s:AttributeType name='ADDRESSKEY' rs:number='1' />
<s:AttributeType name='ADDRESS_1' rs:number='2' />
<s:AttributeType name='ADDRESS_2' rs:number='3' />
<s:AttributeType name='ADDRESS_3' rs:number='4' />
<s:AttributeType name='CITY' rs:number='5' />
<s:AttributeType name='STATE' rs:number='6' />
<s:AttributeType name='ZIP' rs:number='7' />
<s:AttributeType name='FULLADDRESS' rs:number='8' />
<s:AttributeType name='COUNTRY' rs:number='9' />
<s:AttributeType name='FULLADDRESS2' rs:number='10' />
<s:AttributeType name='COUNTY' rs:number='11' />
<s:AttributeType name='BADADDRESS' rs:number='12' />
<s:AttributeType name='VALIDADDRESS' rs:number='13' />
<s:AttributeType name='OWNERID' rs:number='14' />
<s:extends type='rs:rowbase'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row ADDRESSKEY='2bbcd09f-89c7-1242-93bb-ce23e832ab94' ADDRESS_1='123 Broad Lane' ADDRESS_2='' ADDRESS_3='' CITY='Forest Lake' STATE='TX' ZIP='78133' FULLADDRESS='Canyon Lake, TX 78123' COUNTRY='UNITED STATES' FULLADDRESS2='' COUNTY='Lola' BADADDRESS='0' VALIDADDRESS='0' OWNERID='001049231' />
</rs:data>
</xml>
这是一个正确的 ADO 持久 XML 格式的示例
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly' rs:CommandTimeout='30'>
<s:AttributeType name='name' rs:number='1' >
<s:datatype dt:type='string' dt:maxLength='10' />
</s:AttributeType>
<s:AttributeType name='bin' rs:number='2' >
<s:datatype dt:type='bin.hex' dt:maxLength='8' />
</s:AttributeType>
<s:AttributeType name='GUID' rs:number='3'>
<s:datatype dt:type='uuid' dt:maxLength='16' />
</s:AttributeType>
<s:AttributeType name='date' rs:number='4' >
<s:datatype dt:type='dateTime' dt:maxLength='16'
rs:scale='0' rs:precision='16' />
</s:AttributeType>
<s:AttributeType name='float' rs:number='6' >
<s:datatype dt:type='float' dt:maxLength='8'rs:precision='15' />
</s:AttributeType>
<s:AttributeType name='flag' rs:number='7' >
<s:datatype dt:type='boolean' dt:maxLength='2' />
</s:AttributeType>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row name='sample1' bin='00000000499602d2'
GUID='{8AC68D3D-8A09-4403-8860-D0E494BBE894}'
date='2008-01-25T13:04:00Z'
float='3.1415926535800001' flag='0'/>
<z:row name='sample2' date='2008-02-13T18:49:00Z' flag='1'/>
</rs:data>
</xml>
来自链接
http://msdn.microsoft.com/en-us/library/cc313112(v=office.12).aspx
【问题讨论】:
-
它真的有xml作为顶级元素吗?我认为以“xml”开头的名称是保留的。
-
在这种情况下,xml 顶级标记遵循上面链接中的示例。
-
感谢工作示例。但是您提供的链接没有此示例。此外,这里的官方类型规范(w3.org/TR/1998/NOTE-XML-data/#SpecificDatatypes)没有平面“dateTime”格式,只有“dateTime.iso8601”和“dateTime.iso8601tz”类型。这让我很困惑。
-
在本例中,“rs:precision='15'”前应有一个空格。
标签: xml asp-classic vbscript ado