CURSORTOXML( ) (Función)
Convierte un cursor Visual FoxPro en texto XML.
CursorToXML(nWorkArea | cTableAlias, cOutput [, nOutputFormat
[, nFlags [, nRecords [, cSchemaName [, cSchemaLocation [, cNameSpace ]]]]]])
Devuelve
Numérico. EL número de bytes escrito en el archivo o variable de memoria.
Parámetros
nWorkArea
Especifica el área de trabajo de la tabla a partir de la cual se crea la cadena XML. Si se especifica 0 o nada, Visual FoxPro utiliza el área de trabajo actual.cTableAlias
Especifica el alias de la tabla a partir de la cual se crea la cadena XML.cOutput
La ruta y el nombre del archivo o el nombre de la variable de memoria a los que se envían los resultados. Si nFlags se establece para el resultado de la variable de memoria (el valor predeterminado), se devuelve el XML a la variable de memoria. Si la variable de memoria no existe, se creará. Si nFlags se establece para el resultado del archivo (512), y el archivo no existe, éste se creará. Si el archivo ya existe, se sobrescribirá. Se respeta la configuración de SAFETY.nOutputFormat
Especifica el formato de los resultados de la cadena XML, según la tabla siguiente:nOuputFormat Descripción 1 – ELEMENTS XML centrado en elementos (valor predeterminado) 2 – ATTRIBUTES XML centrado en atributos 3 – RAW Genérico, XML centrado en atributos nFlags
Especifica el tipo de esquema XML que se produce según la tabla siguiente:nFlag Bit Descripción del resultado 0 0000 XML con formato UTF-8 (valor predeterminado) 1 0001 XML sin formato (cadena continua) 2 0010 Se escriben elementos vacíos, con elementos de apertura y de cierre (por ejemplo, <cc04><cc04/>). 4 0100 Conserva los espacios en blanco de los campos. 8 1000 Ajusta campos Memo en secciones CDATA. 16 10000 Codificación de resultados 32 100000 Codificación de resultados 512 1000000000 cOutput es un nombre de archivo. El valor predeterminado de nFlag, 0, crea una variable de memoria. Nota Cuando la codificación de resultados es UTF-8 (la predeterminada), la Declaración XML no contiene el atributo Encoding= (ningún atributo de codificación = UTF-8).
Cuando la codificación de resultados predeterminada se establece en la Página de códigos del cursor o de la tabla, el atributo de codificación se escribe de acuerdo con la tabla siguiente.
Nota Los indicadores de codificación se establecen mediante la combinación de los bits 4 y 5 (0010000).
Indicador de codificación Bits 4 y 5 Descripción +0 00 Windows 1252 (predeterminado) +16 01 El atributo de codificación de los resultados se establece en la página de códigos del cursor. +32 10 El atributo de codificación de los resultados se establece en UTF-8, sin conversión de caracteres. +48 11 El atributo de codificación de los resultados se establece en UTF-8; los caracteres de doble byte se traducen a UTF-8. La tabla siguiente muestra una lista de páginas de código comunes compatibles con Windows.
Página de códigos Plataforma Atributo de codificación en la declaración XML Comentarios 932 Windows japonés shift-jis 949 Windows coreano iso-2022-kr –o bien– ks_c_5601-1987
950 Windows chino (Taiwan) big5 1250 Windows de Europa del Este Windows-1250 tenga en cuenta mayúsculas y minúsculas 1251 Windows ruso Windows-1251 1252 Windows de EE.UU. y Europa Occidental Windows-1252 1253 Windows griego Windows-1253 1254 Windows turco Windows-1254 1255 Windows hebreo Windows-1255 1256 Windows árabe Windows-1256 437 MS-DOS WINDOWS-1252 850 MS-DOS, Int Windows-1252 866 MS-DOS, Ruso Windows-1251 865 MS-DOS, Nórdico Windows-1252 Nota Cuando se utiliza una codificación basada en páginas de códigos(juegos de caracteres tradicionales de byte único o doble byte de Visual FoxPro), tales como Windows-1252 (código de página 1252) o Big5 (código de página 950), no es necesaria ninguna otra traducción de caracteres para una presentación correcta en Internet Explorer.
Nota Cuando la codificación de los resultados se establece en UTF-8, el resultado establecido puede someterse opcionalmente a una traducción de caracteres al formato UTF-8. Cuando no hay atributo de codificación, se asume que el XML es UTF-8, por lo que no es necesario (pero podría ser deseable) agregar el atributo de codificación UTF-8.
Generalmente, para XML: si hay una marca de orden de byte, el formato es Unicode (LE o BE, según BOM). Si no hay etiqueta de codificación, el formato es UTF-8. Cuando se establece la codificación de resultados en UTF-8 (la opción predeterminada), el conjunto de resultados debe someterse a una traducción de caracteres al formato UTF-8. Cuando no hay atributo de codificación, se asume que el XML es UTF-8, por lo que no es necesario (pero podría ser deseable) agregar el atributo de codificación UTF-8.
nRecords
Especifica el número de registros que se convertirán en resultados XML. Si nRecords es 0 (la opción predeterminada), en los resultados se incluyen todos los registros. Si nRecords es mayor que el número de registros que quedan en la tabla, se incluyen todos los registros restantes.cSchemaName
Especifica el nombre y la ubicación de la información de esquema para los datos de cFileName.cSchemaName Descripción "" Especifica que no se producirá ningún esquema. "1" Especifica que se producirá un esquema en línea. <cSchemaName> Especifica el nombre y la ruta del archivo externo que contendrá el esquema (que tiene como alcance el elemento raíz del XML). Si cSchemaName contiene un nombre de archivo, y no se proporciona el parámetro cSchemaLocation o se deja en blanco, el contenido de cSchemaName se escribe en el atributo xsi:schemaLocation o xsi:noNamespaceSchemaLocation en el XML.
En el código siguiente, Visual FoxPro genera un archivo XML genérico, myxmlfile.xml, a partir de labels.dbf del alias "Labels" y el archivo de esquema mySchema, en la misma carpeta.
CursorToXML("LABELS", "myXMLFile.xml", 1, 512, 0, "mySchema.xsd")
Si se especifica "", en lugar de "mySchema", no se produce ningún esquema; si se especifica "1", como en el ejemplo siguiente, se produce un esquema en línea:
CursorToXML("LABELS", "myXMLFile.xml", 1, 512, 0, "1")
cSchemaLocation
Especifica una ubicación opcional donde la aplicación que lee los datos XML debería buscar el archivo de esquema. El contenido de cSchemaLocation se escribe en el atributo xsi:schemaLocation o xsi:noNamespaceSchemaLocation de los datos XML producidos. Utilice este parámetro sólo cuando esté desplegando el esquema en una ubicación distinta a la de los datos XML. cSchemaLocation puede ser una dirección http u otra URL. Deberá copiar el archivo de esquema en la ubicación que especificó en cSchemaLocation.Por ejemplo:
CursorToXML("LABELS", "myXMLFile.xml", 1, 512, 0, ; "mySchema.xsd", "https://www.microsoft.com/mySchema.xsd")
producirá datos XML que contienen el atributo siguiente:
xsi:noNamespaceSchemaLocation=" https://www.microsoft.com/mySchema.xsd"
Si cSchemaName está en blanco, especificar cSchemaLocation hará que se escriban los mismos atributos en los datos XML. Esto le permite señalar a un esquema existente sin recrear el esquema cada vez que se llama a CursorToXML.
cNamespace
Especifica el nombre del archivo xml o el esquema que se va a producir. La cadena vacía, "", es el valor predeterminado.Si no se especifica el parámetro cNamespace y el esquema es externo, en el esquema no se escribe ninguna declaración de espacio de nombres. Si no se especifica ningún parámetro cNamespace y el esquema está en línea, el valor de targetNamespace en el esquema se establece en "", la cadena vacía.
Si se especifica cNameSpace, el atributo targetNamespace se establece en el mismo valor y se agrega al esquema el atributo elementFormDefault="qualified".
Observaciones
El resultado de CursorToXML( ) se adhiere al orden de índice del cursor, SET FIELDS TO, y a las configuraciones de filtro actuales. Esta función no conserva la ubicación del cursor. Después de la llamada, el puntero del registro del cursor informa de EOF si todos los registros se incluyeron ya en los resultados o apuntará al último registro de los resultados de XML si no se incluyeron aún todos los registros.
Si cSchemaName incluye una URL, el esquema se escribe en el directorio actual; debe cargarse en el servidor para permitir el acceso al explorador o el analizador. Los esquemas externos se escriben siempre en la misma ubicación que el archivo XML.
Cuando se utilizan conjuntos de caracteres de un solo byte, la codificación predeterminada, Windows-1252, no necesita ninguna traducción más de caracteres para mostrarse correctamente en Internet Explorer. Tanto Unicode como UTF-8 necesitan que el conjunto de resultados se someta a una traducción de caracteres al formato adecuado y, si se especificó que los resultados se guarden en un archivo, que se escriba en el archivo la BOM (Byte Order Mark) correspondiente Unicode o UTF-8, para designar el tipo de archivo como Unicode o UTF-8.
Vea también
Visual FoxPro y XML | XMLUpdateGram( ) (Función) | XMLTOCURSOR( ) (Función)