Compartir a través de


Método DataRecordsets.AddFromXML (Visio)

Agrega un objeto DataRecordset a la colección DataRecordsets y rellena el conjunto de registros de datos resultante con los datos proporcionados en forma de cadena XML.

Nota:

Este objeto o miembro Visio solo se encuentra disponible para los usuarios con licencia de Visio Professional 2013.

Sintaxis

expresión. AddFromXML (XMLString, AddOptions, Name)

Expresión Expresión que devuelve un objeto DataRecordsets .

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
XMLString Obligatorio String Cadena XML que se ajusta al esquema XML clásico de Objetos de datos ActiveX (ADO) de Microsoft y que describe los datos que desea importar.
AddOptions Necesario Long Opciones que determinan propiedades del conjunto de registros de datos que se agrega. Combinación de uno o varios valores enumerados de VisDataRecordsetAddOptions. Para obtener más información, vea la sección de comentarios.
Name Opcional Cadena Asigna un nombre para mostrar al objeto DataRecordset que se va a agregar.

Valor devuelto

DataRecordset

Comentarios

Para el parámetro XMLString, se pasa una cadena XML que se ajusta al esquema XML clásico de ADO y que describe los datos que se desea importar. En el ejemplo de este tema que figura más adelante se muestra una cadena XML simple.

El parámetro AddOptions puede ser una combinación de uno o más de los valores siguientes de la enumeración VisDataRecordsetAddOptions declarada en la biblioteca de tipos de Microsoft Visio. El valor predeterminado es cero (0), que especifica que no se establece ninguna de las opciones.

Constante Valor Descripción
visDataRecordsetNoExternalDataUI 1 Impide que los datos del nuevo conjunto de registros de datos se muestren en la ventana Datos externos.
visDataRecordsetNoAdvConfig 4 Impide que el conjunto de registros de datos se muestre en el cuadro de diálogo Configurar actualización.
visDataRecordsetDontCopyLinks 16 Agrega un conjunto de registros de datos, pero los vínculos de datos de formas no se cortan ni copian.

Una vez asignados estos valores, no se pueden cambiar durante la existencia del objeto DataRecordset.

El argumento Name es una cadena opcional que permite asignar un nombre para mostrar al conjunto de registros de datos. Si se especifica que se muestre la ventana Datos externos en la UI de Visio, el nombre que se pase para este argumento aparecerá en la ficha de la ventana Datos externos correspondiente al conjunto de registros de datos agregado.

En contraposición con los conjuntos de registros de datos creados mediante el uso de los métodos Add o AddFromConnectionFile, los conjuntos de registros de datos creados mediante el método AddFromXML no están asociados a un objeto DataConnection.

Además, Visio nunca actualiza un conjunto de registros de datos creado mediante el método AddFromXML automáticamente, con independencia del establecimiento de la propiedad DataRecordset.RefreshInterval. Para actualizar los datos de este tipo de conjunto de registros de datos, debe llamar al método DataRecordset.RefreshUsingXML .

Si el método AddFromXML se realiza correctamente, realiza las siguientes acciones:

  • Crea un objeto DataRecordset y le asigna el nombre especificado en el parámetro Name. Si no especifica un nombre, Visio asigna al conjunto de registros de datos el nombre de la tabla de base de datos que es el origen de los datos.

  • Asigna los tipos de datos de las columnas del origen de datos a tipos de datos de Visio equivalentes, y filtra los resultados para quitar las columnas del origen de datos que no se pueden vincular a formas de Visio porque no tienen tipos de datos de Visio equivalentes.

  • Asigna un identificador de fila a cada una de las filas del conjunto de registros de datos, a menos que los datos importados contengan ya identificadores válidos de filas de datos de Visio. Para obtener más información sobre los identificadores de fila de datos de Visio, vea el tema DataRecordset.GetDataRowIDs .

Ejemplo:

La macro siguiente de Microsoft Visual Basic para Aplicaciones (VBA) muestra la forma de usar el método AddFromXML para conectar un dibujo de Visio a datos contenidos en una cadena XML de ADO.

A continuación, se muestra una cadena XML de ejemplo. Cuando se pasa al método AddFromXML, esta cadena crea un conjunto de registros de datos que contiene una columna, denominada "Cities" y dos filas de datos con entradas en esa columna consistentes en nombres de ciudades.

<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>

En el código de ejemplo siguiente, se pasa al método AddFromXML el nombre de una cadena XML que contiene datos y el nombre de una cadena que contiene el nombre de presentación que se desea asignar al nuevo conjunto de registros de datos que se crea.

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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.