2008-12-17 12 views

Répondre

3

Ce n'est pas xml valide, mais il peut être inséré dans une colonne XML dans SQL Server 2005. Je ne peux pas parler pour Oracle, mais je serais presque prêt à parier que cela pourrait.

De toute évidence avec SQL Server 2005, vous devez le commerce guillemet pour des guillemets simples:

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

Cela fonctionne très bien - je viens de tester et l'insert a réussi.

+0

Ne pensez-vous pas que ce comportement de MSSQL 2005 est indésirable? Imaginez-vous analyser les données de cette colonne à un XElement au point net .... –

+0

@CodeMelt: C'est Microsoft pour vous - il y a beaucoup de choses bizarres à propos de leurs produits. Si vous vouliez que je commence une liste de tout ce qui était bizarre au sujet des produits MS, je serais là pour l'éternité. – BenAlabaster

1

Ce n'est pas un fichier XML valide. Un fichier xml valide requiert une déclaration xml avec un type de codage et un nœud racine. Que Oracle ou SQL Server l'accepte de toute façon est quelque chose que vous pouvez vérifier par vous-même.

+0

Colonne MSSQL est très bien avec une chaîne vide et même un texte libre qui n'est pas dans un style XML. Je ne sais pas comment oracle pour gérer cela. c'est pourquoi je demande! –

+0

La déclaration XML n'est en fait pas une exigence stricte pour XML valide. –

6

Non, le spec dit un document XML bien formé satisfait:

document ::= prolog element Misc* 

element ::= EmptyElemTag 
       | STag content ETag 
3

Ce n'est pas un document XML - il doit y avoir au moins un et au plus une racine élément. (la déclaration XML est facultative si le codage est UTF-8 et la version est 1.0 - production 22 de la recommandation XML). Il s'agit d'un fragment XML valide - soit en tant que nœud de texte vide, soit en tant que plage vide.

Vous devrez définir ce que «morceau de XML» signifie dans votre contexte.