DataRecordset.RefreshUsingXML 方法 (Visio)

汇报链接的形状,其数据包含在字符串中,这些数据符合作为参数传递给方法的 ADO 经典 XML 架构。

注意

此 Visio 对象或成员仅供 Visio Professional 2013 的授权用户使用。

语法

表达式RefreshUsingXML (NewDataAsXML)

表达 返回 DataRecordset 对象的表达式。

参数

名称 必需/可选 数据类型 说明
NewDataAsXML 必需 字符串 一个 XML 字符串,包含要刷新数据记录集的新数据并符合经典 ADO 架构。

返回值

Nothing

注解

对于 XMLString 参数,传递一个 XML 字符串,该字符串符合 ADO 经典 XML 架构,并且描述您要导入的数据。 在本主题后面的示例中显示了一个 XML 字符串示例。

传递给 RefreshUsingXML 方法的 XML 字符串中数据的构建方式应类似于要更新的数据记录集内数据的构建方式。 至少这两组数据的主关键字列应该是相同的。 主关键字标识包含每一行的唯一标识符的数据列的名称。 每一行的主关键字列中的值都唯一地标识数据记录集内的该行。

在创建数据记录集时,Microsoft Visio 会根据数据源中现有的行顺序,向该记录集内的所有行分配行 ID。

如果传递给 RefreshUsingXML 方法的 XML 字符串包含一个由 Visio 行 ID (组成的列,例如,如果通过获取数据记录集) 的 DataAsXML 属性值从 Visio 导出, RefreshUsingXML 方法将尝试验证字符串中的行 ID。 如果该方法发现这些行 ID 有效,则会在更新后的数据记录集内重用它们。 如果发现它们无效,则会返回错误。

示例

以下 Microsoft Visual Basic for Applications (VBA) 宏演示如何使用 RefreshUsingXML 方法使用 ADO 经典 XML 字符串中包含的数据更新现有数据记录集。

这里显示了一个 XML 字符串示例。 运行此宏之前,请打开新的 Visio 绘图,并在 DataRecordsets.AddFromXML 方法主题中运行该宏。

将其传递给 RefreshUsingXML 方法时,此字符串将更新 AddFromXML 方法创建的数据记录集,从而更改城市名称。

<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='c1' rs:name='Cities' 
rs:number='2' rs:nullable='true' rs:maydefer='true' rs:write='true'> 
<s:datatype dt:type='string' dt:maxLength='255' rs:precision='0'/> 
</s:AttributeType> 
<s:extends type='rs:rowbase'/> 
</s:ElementType> 
</s:Schema> 
<rs:data> 
<z:row c1='New York' /> 
<z:row c1='London' /> 
</rs:data> 
</xml>

在以下代码示例中,将一个包含更新数据的 XML 字符串的名称传递给 RefreshUsingXML 方法。

Public Sub RefreshUsingXML_Example() 
 
    Dim strXML As String 
    Dim intCount As Integer 
    Dim vsoDataRecordset As Visio.DataRecordset 
 
intCount = ThisDocument.DataRecordsets.Count 
 
    strXML = "<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'" + Chr(10) _ 
    & "xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'" + Chr(10) _ 
    & "xmlns:rs='urn:schemas-microsoft-com:rowset'" + Chr(10) _ 
    & "xmlns:z='#RowsetSchema'>" + Chr(10) _ 
    & "<s:Schema id='RowsetSchema'>" + Chr(10) _ 
    & "<s:ElementType name='row' content='eltOnly' rs:updatable='true'>" + Chr(10) _ 
    & "<s:AttributeType name='c1' rs:name='Cities'" + Chr(10) _ 
    & "rs:number='2' rs:nullable='true' rs:maydefer='true' rs:write='true'>" + Chr(10) _ 
    & "<s:datatype dt:type='string' dt:maxLength='255' rs:precision='0'/>" + Chr(10) _ 
    & "</s:AttributeType>" + Chr(10) _ 
    & "<s:extends type='rs:rowbase'/>" + Chr(10) _ 
    & "</s:ElementType>" + Chr(10) _ 
    & "</s:Schema>" + Chr(10) _ 
    & "<rs:data>" + Chr(10) _ 
    & "<z:row c1='New York'/>" + Chr(10) _ 
    & "<z:row c1='London'/>" + Chr(10) _ 
    & "</rs:data>" + Chr(10) _ 
    & "</xml>" 
 
    ThisDocument.DataRecordsets(intCount).RefreshUsingXML(strXML) 
 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。