vistas de catálogo para XML

Las vistas de catálogo sirven para proporcionar información de metadatos acerca del uso del XML. Algunas se describen en la sección siguiente.

Índices XML

Las entradas del índice XML aparecen en la vista de catálogo, sys.indexes, con el "tipo" de índice 3. La columna del nombre contiene el nombre del índice XML.

Los índices XML también se registran en la vista de catálogo sys.xml_indexes. Ésta contiene todas las columnas de sys.indexes y algunas específicas que son útiles para índices XML. El valor NULL de la columna secondary_type indica un índice XML principal; los valores "P", "R" y "V" representan los índices XML secundarios PATH, PROPERTY y VALUE, respectivamente.

Es posible encontrar el uso de espacio de los índices XML en la función con valores de tabla sys.dm_db_index_physical_stats. Contiene información como el número de páginas de disco ocupadas, el tamaño medio de las filas en bytes y el número de registros de todos los tipos de índice. Se refiere también a los índices XML. Esta información está disponible para cada partición de base de datos. Los índices XML usan el mismo esquema de partición y la misma función de partición que la tabla base.

Recuperar colecciones de esquemas XML

Las colecciones de esquemas XML se enumeran en la vista de catálogo sys.xml_schema_collections. La colección de esquemas XML "sys" la define el sistema. Contiene los espacios de nombres predefinidos que se pueden usar en todas las colecciones de esquemas XML definidas por el usuario, sin tener que cargarlos explícitamente. Esta lista contiene los espacios de nombres para xml, xs, xsi, fn y xdt. Otras dos vistas de catálogo son sys.xml_schema_namespaces, que enumera todos los espacios de nombres incluidos en una colección de esquemas XML, y sys.xml_components, que enumera todos los componentes de esquemas XML dentro de cada esquema XML.

La función integrada XML_SCHEMA_NAMESPACE, schemaName, XmlSchemacollectionName, namespace-uri, genera una instancia de tipo de datos xml. Esta instancia contiene fragmentos de esquemas XML correspondientes a esquemas incluidos en una colección de esquemas XML, excepto los esquemas XML predefinidos.

Puede enumerar el contenido de una colección de esquemas XML de las siguientes maneras:

  • Escriba consultas Transact-SQL sobre las vistas de catálogo apropiadas para colecciones de esquemas XML.

  • Use la función integrada XML_SCHEMA_NAMESPACE(). Puede aplicar métodos de tipo de datos xml al resultado de esta función. Sin embargo, no puede modificar los esquemas XML subyacentes.

Los ejemplos siguientes ilustran lo comentado.

Ejemplo: Enumerar los espacios de nombres XML en una colección de esquemas XML

Use la siguiente consulta para la colección de esquemas XML "myCollection".

SELECT XSN.name
FROM    sys.xml_schema_collections XSC JOIN sys.xml_schema_namespaces XSN
    ON (XSC.xml_collection_id = XSN.xml_collection_id)
WHERE    XSC.name = 'myCollection'   

Ejemplo: Enumerar el contenido de una colección de esquemas XML

La instrucción siguiente enumera el contenido de la colección de esquemas XML "myCollection" dentro del esquema relacional dbo.

SELECT XML_SCHEMA_NAMESPACE (N'dbo', N'myCollection')

Es posible obtener esquemas XML individuales incluidos en la colección como instancias de tipo de datos xml; para ello, especifique el espacio de nombres de destino como tercer argumento de XML_SCHEMA_NAMESPACE(). Esto se muestra en el ejemplo siguiente.

Ejemplo: Obtener un esquema especificado a partir de una colección de esquemas XML

La instrucción siguiente genera como resultado el esquema XML con el espacio de nombres de destino "https://www.microsoft.com/books" a partir de la colección de esquemas XML "myCollection" dentro del esquema relacional dbo.

SELECT XML_SCHEMA_NAMESPACE (N'dbo', N'myCollection', 
N'https://www.microsoft.com/books')

Consultar esquemas XML

Los siguientes procedimientos permiten consultar esquemas XML que se hayan cargado en colecciones de esquemas XML:

  • Escriba consultas Transact-SQL sobre vistas de catálogo para espacios de nombres de esquemas XML.

  • Cree una tabla que contenga una columna de tipo de datos xml para almacenar los esquemas XML y también cargarlos en el sistema de tipo XML. Puede consultar la columna XML mediante los métodos de tipo de datos xml. Además, puede crear un índice XML en esta columna. Sin embargo, con este enfoque, la aplicación debe mantener la coherencia entre los esquemas XML almacenados en la columna XML y el sistema de tipo XML. Por ejemplo, si se quita el espacio de nombres de esquemas XML del sistema de tipo XML, también se tiene que quitar de la tabla para preservar la coherencia.

Vea también

Otros recursos