[AccessD] Opening an XML recordset

Charlotte Foust cfoust at infostatsystems.com
Thu Aug 18 20:16:40 CDT 2005


I've never tried to do what you're doing, but here's a sample of the
relevant part of an xml doc persisted from Access using the MSPersist
driver.  Is that useful at all?

Charlotte

<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:updatable='true'>
		<s:AttributeType name='CustomerID' rs:number='1'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='CustomerID'>
			<s:datatype dt:type='string' dt:maxLength='5'/>
		</s:AttributeType>
		<s:AttributeType name='EmployeeID' rs:number='2'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='EmployeeID'>
			<s:datatype dt:type='int' dt:maxLength='4'
rs:precision='10' rs:fixedlength='true'/>
		</s:AttributeType>
		<s:AttributeType name='Freight' rs:number='3'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='Freight'>
			<s:datatype dt:type='number'
rs:dbtype='currency' dt:maxLength='8' rs:precision='19'
rs:fixedlength='true'/>
		</s:AttributeType>
		<s:AttributeType name='OrderDate' rs:number='4'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='OrderDate'>
			<s:datatype dt:type='dateTime'
rs:dbtype='variantdate' dt:maxLength='16' rs:fixedlength='true'/>
		</s:AttributeType>
		<s:AttributeType name='OrderID' rs:number='5'
rs:maydefer='true' rs:writeunknown='true' rs:basetable='tblOrders'
			 rs:basecolumn='OrderID'
rs:autoincrement='true'>
			<s:datatype dt:type='int' dt:maxLength='4'
rs:precision='10' rs:fixedlength='true'/>
		</s:AttributeType>
		<s:AttributeType name='RequiredDate' rs:number='6'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='RequiredDate'>
			<s:datatype dt:type='dateTime'
rs:dbtype='variantdate' dt:maxLength='16' rs:fixedlength='true'/>
		</s:AttributeType>
		<s:AttributeType name='ShipAddress' rs:number='7'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='ShipAddress'>
			<s:datatype dt:type='string' dt:maxLength='60'/>
		</s:AttributeType>
		<s:AttributeType name='ShipCity' rs:number='8'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='ShipCity'>
			<s:datatype dt:type='string' dt:maxLength='15'/>
		</s:AttributeType>
		<s:AttributeType name='ShipCountry' rs:number='9'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='ShipCountry'>
			<s:datatype dt:type='string' dt:maxLength='15'/>
		</s:AttributeType>
		<s:AttributeType name='ShipName' rs:number='10'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='ShipName'>
			<s:datatype dt:type='string' dt:maxLength='40'/>
		</s:AttributeType>
		<s:AttributeType name='ShippedDate' rs:number='11'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='ShippedDate'>
			<s:datatype dt:type='dateTime'
rs:dbtype='variantdate' dt:maxLength='16' rs:fixedlength='true'/>
		</s:AttributeType>
		<s:AttributeType name='ShipPostalCode' rs:number='12'
rs:nullable='true' rs:maydefer='true' rs:write='true'
			 rs:basetable='tblOrders'
rs:basecolumn='ShipPostalCode'>
			<s:datatype dt:type='string' dt:maxLength='10'/>
		</s:AttributeType>
		<s:AttributeType name='ShipRegion' rs:number='13'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='ShipRegion'>
			<s:datatype dt:type='string' dt:maxLength='15'/>
		</s:AttributeType>
		<s:AttributeType name='ShipVia' rs:number='14'
rs:nullable='true' rs:maydefer='true' rs:write='true'
rs:basetable='tblOrders'
			 rs:basecolumn='ShipVia'>
			<s:datatype dt:type='int' dt:maxLength='4'
rs:precision='10' rs:fixedlength='true'/>
		</s:AttributeType>
		<s:extends type='rs:rowbase'/>
	</s:ElementType>
</s:Schema>
<rs:data>
	<z:row CustomerID='ALFKI' EmployeeID='4' Freight='61.02'
OrderDate='1997-10-03T00:00:00' OrderID='10692'
RequiredDate='1997-10-31T00:00:00'
		 ShipAddress='Obere Str. 57' ShipCity='Berlin'
ShipCountry='Germany' ShipName='Alfreds Futterkiste'
ShippedDate='1997-10-13T00:00:00'
		 ShipPostalCode='12209' ShipVia='2'/>


-----Original Message-----
From: Francisco Tapia [mailto:fhtapia at gmail.com] 
Sent: Thursday, August 18, 2005 4:10 PM
To: Access Developers discussion and problem solving
Subject: [AccessD] Opening an XML recordset


I have an XML document that I obtain from a webservice, I was able to
creat 
the schema and using XMLPad I can see that it is infact a valid
document, 
(see below). However the error Message I get from Access (2000) is that 
"Recordset cannot be created. Source XML is incomplete or invalid."

How can I make the following document a valid xml document for opening
as an 
ado recordset, ie:
rst.Open "C:\ShipVia.xml", "Provider=MSPersist;", adOpenDynamic, 
adLockReadOnly, adCmdFile


thanks,

I abbreviated the doc for simplyfing the post.

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:schema>
<xsd:element name="ArrayOfWSShipViaItem">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="WSShipViaItem" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence> <xsd:attribute name="generated" type="xsd:dateTime"/>
</xsd:complexType> </xsd:element> <xsd:element name="WSShipViaItem">
<xsd:annotation> <xsd:appinfo/> </xsd:annotation> <xsd:complexType>
<xsd:sequence> <xsd:element name="ID" minOccurs="0" od:jetType="text" 
od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Description" minOccurs="0" od:jetType="text" 
od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<ArrayOfWSShipViaItem xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="
http://HAASService.org//WSAvanteData">
<WSShipViaItem>
<ID>10</ID>
<Description>FED EX P1176208147 (SKINNER)</Description> </WSShipViaItem>
</ArrayOfWSShipViaItem> </root>


-- 
-Francisco



More information about the AccessD mailing list