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