Поделиться через


Метод DataRecordset.RefreshUsingXML (Visio)

Обновления связанные фигуры с данными, содержащимися в строке, которая соответствует классической xml-схеме ADO, переданной методу в качестве параметра.

Примечание.

Этот объект или элемент Visio доступен только лицензированным пользователям Visio профессиональный 2013.

Синтаксис

expression. RefreshUsingXML (NewDataAsXML)

Выражение Выражение, возвращающее объект DataRecordset .

Параметры

Имя Обязательный или необязательный Тип данных Описание
NewDataAsXML Обязательный String Строка XML, содержащая новые данные для обновления набора записей данных и соответствующая классической схеме ADO.

Возвращаемое значение

Отсутствует

Примечания

Для параметра XMLString передайте XML-строку, которая соответствует классической схеме XML ADO и описывает данные, которые требуется импортировать. Пример XML-строки показан в примере ниже в этом разделе.

Данные в XML-строке, передаваемой в метод RefreshUsingXML , должны быть структурированы так же, как и данные в наборе записей данных, который требуется обновить. Как минимум, первичные ключевые столбцы должны быть одинаковыми в обоих наборах данных. Первичный ключ определяет имя столбца данных или столбцов, содержащих уникальные идентификаторы для каждой строки. Значение в столбце первичного ключа для каждой строки однозначно определяет эту строку в наборе записей данных.

При создании набора записей данных Microsoft Visio назначает идентификаторы строк всем строкам в наборе записей на основе существующего порядка строк в источнике данных.

Если XML-строка, передаваемая методу RefreshUsingXML , содержит столбец, состоящий из идентификаторов строк Visio (например, если бы вы экспортировали ее из Visio, получив значение свойства DataAsXML набора записей данных), метод RefreshUsingXML пытается проверить идентификаторы строк в строке. Если метод находит идентификаторы строк допустимыми, он повторно использует их в обновленном наборе записей данных. Если они признаны недопустимыми, возвращается ошибка.

Пример

В следующем макросе Microsoft Visual Basic для приложений (VBA) показано, как использовать метод RefreshUsingXML для обновления существующего набора записей данных данными, содержащихся в классической XML-строке ADO.

Здесь показан пример 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>

В следующем примере кода мы передадим методу RefreshUsingXML имя XML-строки, содержащей обновленные данные.

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 и обратная связь.