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


Метод DataRecordsets.AddFromXML (Visio)

Добавляет объект DataRecordset в коллекцию DataRecordsets и заполняет результирующий набор записей данных данными, предоставленными в виде XML-строки.

Примечание.

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

Синтаксис

expression. AddFromXML (XMLString, AddOptions, Name)

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

Параметры

Имя Обязательный или необязательный Тип данных Описание
XMLString Обязательный String Строка XML, соответствующая классической схеме XML объектов данных Microsoft ActiveX (ADO) и описывающая данные, которые требуется импортировать.
AddOptions Обязательный Long Параметры, определяющие свойства добавляемого набора записей данных. Сочетание одного или нескольких перечисленных значений из VisDataRecordsetAddOptions. Дополнительные сведения см. в разделе "Комментарии".
Name Необязательно заполнять. String Назначает отображаемое имя добавляемого объекта DataRecordset .

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

DataRecordset

Замечания

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

Параметр AddOptions может быть сочетанием одного или нескольких следующих значений из перечисления VisDataRecordsetAddOptions , объявленного в библиотеке типов Microsoft Visio. Значение по умолчанию равно нулю (0), что указывает, что ни один из параметров не задан.

Константа Значение Описание
visDataRecordsetNoExternalDataUI 1 Запрещает отображение данных в новом наборе записей данных в окне Внешние данные .
visDataRecordsetNoAdvConfig 4 Запрещает отображение набора записей данных в диалоговом окне Настройка обновления .
visDataRecordsetDontCopyLinks 16 Добавляет набор записей данных, но связи с данными фигуры не вырезаются и не копируются.

После назначения этих значений их нельзя изменить в течение срока жизни объекта DataRecordset .

Аргумент Name — это необязательная строка, которая позволяет назначить набору записей данных отображаемое имя. Если указать, что окно внешних данных отображается в пользовательском интерфейсе Visio, имя, передаваемое для этого аргумента, появится на вкладке окна Внешние данные , соответствующего добавленным набору записей данных.

В отличие от наборов записей данных, созданных с помощью методов Add или AddFromConnectionFile , наборы записей данных, созданные с помощью метода AddFromXML , не связаны с объектом DataConnection .

Более того, Visio никогда не обновляет набор записей данных, созданный с помощью метода AddFromXML , автоматически, независимо от параметра свойства DataRecordset.RefreshInterval . Чтобы обновить данные в таком наборе записей данных, необходимо вызвать метод DataRecordset.RefreshUsingXML .

Если метод AddFromXML успешно выполнен, он выполняет следующие действия:

  • Создает объект DataRecordset и назначает ему имя, указанное в параметре Name. Если не указать имя, Visio присваивает набору записей данных имя таблицы базы данных, которая является источником данных.

  • Сопоставляет типы данных столбцов источника данных с эквивалентными типами данных Visio, фильтруя результаты, чтобы удалить столбцы источника данных, которые не могут быть связаны с фигурами Visio, так как они не имеют эквивалентного типа данных Visio.

  • Назначает идентификатор строки данных Visio каждой строке в наборе записей данных, если импортированные данные уже не содержат допустимые идентификаторы строк данных Visio. Дополнительные сведения об идентификаторах строк данных Visio см. в разделе DataRecordset.GetDataRowIDs .

Пример

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

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

<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='Seattle' /> 
<z:row c1='Redmond' /> 
</rs:data> 
</xml>

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

Public Sub AddFromXML_Example() 
 
    Dim strXML As String 
    Dim strName As String 
    Dim vsoDataRecordset As Visio.DataRecordset 
 
    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='Seattle'/>" + Chr(10) _ 
    & "<z:row c1='Redmond'/>" + Chr(10) _ 
    & "</rs:data>" + Chr(10) _ 
    & "</xml>" 
 
    strName = "City Names" 
 
    Set vsoDataRecordset = ThisDocument.DataRecordsets.AddFromXML(strXML, 0, strName) 
 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.