2008-12-17 24 views

Respuesta

3

No es xml válido, pero se puede insertar en una columna XML en SQL Server 2005. No puedo hablar por Oracle, pero estaría dispuesto a apostar que sí.

Obviamente con SQL Server 2005, es necesario mejorar el tipo de comillas dobles para comillas simples:

Insert Into MyTestTable(MyXmlColumn) Values(''); 

Eso funciona muy bien - Acabo de prueba y la inserción tuvo éxito.

+0

¿No cree que se está usando este comportamiento de MSSQL 2005? Imagine que analiza los datos de esa columna en un XElement at dot net ... –

+0

@CodeMelt: Eso es Microsoft para usted: sus productos son muy raros. Si quisieras que comenzara una lista de todo lo que era extraño sobre los productos de MS, estaría aquí por la eternidad. – BenAlabaster

1

No es xml válido. El xml válido requiere una declaración xml con tipo de codificación y un nodo raíz. Si Oracle o SQL Server lo aceptará de todos modos es algo que puede verificar usted mismo.

+0

La columna MSSQL está bien con una cadena vacía e incluso un texto libre que no está en ningún estilo XML. No sé cómo oráculo para manejar esto. es por eso que pregunto! –

+0

La declaración XML en realidad no es un requisito estricto para XML válido. –

6

No. El spec dice un bien formado satisface documento XML:

document ::= prolog element Misc* 

donde

element ::= EmptyElemTag 
       | STag content ETag 
3

No es un documento XML - es necesario que haya al menos uno y como máximo una raíz elemento. (la declaración XML es opcional si la codificación es UTF-8 y la versión es 1.0 - producción 22 de la recomendación XML). Es un fragmento válido de XML , ya sea como un nodo de texto vacío o como un rango vacío.

Deberá definir qué significa "pieza de XML" en su contexto.

Cuestiones relacionadas