Pregunta

Mientras crea una tabla que tiene una columna Tipo XML, me refiero a una colección de esquema XML compleja .Cuando especifique el xml esquema , tengo la opción de mencionar cualquiera de las palabras clave o de contenido o .Este último se asegurará de que los datos XML se almacenen como un documento en una sola columna.

Según un video tutorial, el contenido almacenará los datos XML en los fragmentos .

Además de la declaración anterior, no encuentro ninguna referencia en ningún otro lugar con respecto al uso de la palabra clave content y su implicación en esquema y datos.

Me gustaría saber cómo se crean y administran los fragmentos y si y cómo se pueden consultar individualmente.Además, cómo se correlacionan los fragmentos.A continuación, cuando enmendí la colección XML Schema, cuál es el impacto.

No hay solución correcta

Otros consejos

En realidad, creo SQLSERVER 2005 XML es bastante bueno documentado.
El contenido es el valor predeterminado y permite cualquier XML válido. El documento es más específico y significa que los datos XML que pueda para almacenar solo se les permite tener un único nodo de nivel superior.

Crear:

CREATE TABLE XmlCatalog ( 
   ID INT PRIMARY KEY, 
   Document XML(CONTENT myCollection))

Insertar:

INSERT INTO XmlCatalog VALUES (2, 
'<doc id="123">
    <sections>
   <section num="1"><title>XML Schema</title></section>
   <section num="3"><title>Benefits</title></section>
   <section num="4"><title>Features</title></section>
    </sections>
</doc>')

Seleccionar:

SELECT xCol.query('/doc[@id = 123]//section')   
FROM XmlCatalog   
WHERE  xCol.exist ('/doc[@id = 123]') = 1

... y así sucesivamente. El idioma de la consulta supera más o menos en un subconjunto de XPATH 1.0.

Si modifica un XSD, se verifica en las inserciones y actualizaciones y se almacena dentro del XML de cada elemento. Por lo que entiendo, el Doc también se le permite agregar múltiples esquemas para una columna para que las entradas puedan hacer referencia a diferentes esquemas.

Editar:
Ok, después de leer las partes específicas de la documentación, creo que entiendo cuál es su problema. La referencia no es muy clara en ese punto, pero por lo que entiendo, solo las entradas con un nodo de nivel superior pueden estar unidas a los esquemas XSD.
Debido al hecho de que XSD-Schemas requieren un único nodo de nivel superior que define el archivo XSD usado, no será posible validar los fragmentos que contengan más de un elemento de nivel superior. No lo he intentado pero creo que no se puede hacer.
Sin embargo, parece ser válido para definir una columna de contenido, enmendar un XSD y almacenar tanto, XML con un nodo de nivel superior que hace referencia al XSD, así como los fragmentos XML, que solo verificarán la limpieza. Se puede acceder a los fragmentos mediante el XPath Query Language Show en la declaración de selección anterior.
No puedo decirles mucho sobre las implicaciones de desempeño. La referencia menciona que XSDS se almacena en línea, por lo que esto necesitará un espacio adicional dentro del DB. Las consultas de XPath también deben ser ejecutadas. A pesar del hecho de que XPath por lo general es bastante rápido, supongo que podría disminuir la causa de rendimiento, debe realizarse en cada fila para obtener el resultado. Para asegurarse de que creo que debe verificar el plan de ejecución para su consulta específica, dependiendo del tamaño y la complejidad del XML almacenado, así como la expresión de XPath.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top