Quelle est la manière acceptée de stocker des données citées en XML?
Quel est le moyen de stocker de la cité de données en XML?
Par exemple, pour un nœud, ce qui est correct?
- (a) <nom>Jesse "The Body" Ventura</nom>
- (b) <nom>Jesse \"\" Ventura</nom>
- (c) <nom>Jesse "Le Corps" Ventura</nom>
- (d) aucune de ce qui précède (à préciser)
Si (un), que faites-vous pour les attributs? Si (c), est-il vraiment approprié pour mélanger le HTML & XML? De même, comment gérez-vous unique et guillemets?
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Votre réponse est Un & C comme
"
n'est pas un personnage qui doit être encodée dans l'élément de données.Vous devez toujours être en XML codage des caractères tels que
>
<
et&
pour s'assurer que vous n'avez pas de questions si elles ne sont PAS à l'intérieur d'une section CDATA. Ces sont des éléments clés pour être inquiète pour l'élément de données.Quand on parle d'attributs que vous devez être prudent de
'
et"
dans les valeurs d'attribut selon le type de symbole que vous utilisez pour entourer la valeur.J'ai remarqué que, souvent, l'encodage
"
et'
est une meilleure idée dans tous les aspects, car il contribue à la fois lors de la conversion vers d'autres formats, d'où la"
ou'
pourrait causer des problèmes.De données de caractères à l'intérieur des éléments XML peut contenir des caractères de devis sans échapper. Les seuls caractères qui ne sont pas autorisés à l'intérieur d'un élément XML sont '<', '&' et '>' (et de la " >' n'est refusée si elle fait partie d'un "]]>" séquence de caractères.
Cela ne veut pas dire qu'échapper les guillemets n'est pas une bonne idée, je dis juste que de ne pas échapper les guillemets est parfaitement valide XML. Voir la section 2.4 - "Données de Caractère et de Balisage" dans le XML spécification.
Donc à la fois (a) et (c) sont OK.
Autant que les attributs sont concernés, les valeurs des attributs peuvent être encadrées par des guillemets simples et doubles, de sorte que si elle contient un ou l'autre, vous pouvez utiliser le face à face pour mettre la valeur. Si il va contenir à la fois, alors vous aurez à utiliser une entité de caractère pour une ou des deux.
"Frisée-citations", si vous parlez de la spéciale, non-ASCII cite ce Mot parfois convertit citations à l' - ils n'ont pas de signification particulière en XML, de sorte que vous pouvez le faire selon (mais ils ne peuvent pas être utilisés pour encadrer les valeurs de l'attribut". Vous aurez également besoin de vous assurer que l'encodage de caractères du document est correct, de sorte qu'ils sont correctement interprétés.
Des guillemets dans les nœuds de texte peut être représenté comme le double caractère de devis ou de la
"
entité. Devis Double dans les valeurs d'attribut peut être représenté par le double caractère de guillemets si la valeur est délimitée par des guillemets simples, et vice versa; sinon, échappement"
Cela n'est pertinent que si vous êtes un) de modifier le XML dans un non-XML-connaissance éditeur de texte ou b) la création de XML par programmation grâce à la manipulation de chaînes. En général, vous devriez éviter de (a), sauf si vous savez vraiment ce que vous êtes en train de faire, ou au moins avoir un moyen de vérifier le bien-formation de votre XML une fois le montage terminé.
Et vous devriez éviter de (b) dans toutes les circonstances. Ne créez jamais de XML par le biais de la manipulation de la chaîne, toujours utiliser un DOM ou un autre outil.
Vous ne devriez pas vous soucier de la façon dont les choses sont encodés en XML. Vous devriez toujours utiliser une bibliothèque digne de ce nom pour la génération de documents XML. Il y a trop de gotcha à XML pour obtenir juste par vous-même. J'ai vu des tonnes de documents XML non valides venir à ma façon parce que quelqu'un a pensé qu'ils pourraient générer un format XML eux-mêmes, sans l'aide d'une bibliothèque. Tous les principaux langages de programmation utilisés aujourd'hui ont XML bibliothèques.
La spécification XML lui-même ne parle pas de nœuds (autres que lorsque l'on compare les DTD de la syntaxe à l'automate fini regex). Un nœud DOM peut être attribut, élément de texte ou l'un des autres types de nœuds.
À l'intérieur d'un nœud de texte, vous avez seulement besoin d'échapper les caractères qui l'analyseur de les interpréter comme le démarrage d'un autre nœud - donc vous échapper & et < comme & et < .
Pour des raisons de portabilité, il est souvent une bonne idée pour échapper guillemets, mais il n'y a aucune raison d'échapper à la plaine des citations dans le texte XML.
À l'intérieur d'un nœud d'attribut, vous avez pour échapper à moins que et esperluette comme avant, et aussi selon la citation que vous avez utilisé pour délimiter l'attribut.
Il est habituellement plus facile de prendre l'habitude de ne recourir qu'à un seul type et toujours lui échapper. J'écris un peu de XSLT et en faveur de " l'extérieur et l'intérieur:
Si vous obtenez paranoïaque avec l'échappement, le XPath devient moins lisible:
XML définit les entités nommées ampgtltapos& "
HTML définit beaucoup plus de entités.
Vous pouvez et devez utiliser le XML entités nommées en XML, de préférence à l'aide d'une entité numérique.
La lt entité échappe < et doit être utilisé dans le texte et les valeurs d'attribut.
Le amp entité échappe & et doit être utilisé dans le texte et les valeurs d'attribut.
Le apos et " entités échapper ' et " et doit être utilisé dans les valeurs d'attribut.
Le gt entité est un peu inutile - il n'y a presque jamais syntaxique, l'exigence de s'échapper > en XML. Peut - > accepté de travailler avec < si elle est égale à la facturation.
L'autre que j'utilise beaucoup dans XSLT qui génère le code source est 
 qui insère une nouvelle ligne. &nl; aurait été plus utile que >
XML est conçu pour marquer du texte Unicode, et les guillemets n'ont aucune signification particulière. Cependant, il n'est pas rare pour le codage utilisé pour et document XML être mal interprété dans la nature. Donc, si c'est dans un environnement fermé et peut garantir un bon encodage Unicode au producteur et consommateur, alors que je venais de mettre dans le fichier XML. Sinon, utilisez un caractère numérique de l'entité. C'est vrai de n'importe quel personnage avec un code-point au-dessus de 127 - il n'y a rien de spécial à propos de guillemets.
La bonne réponse est "C".
Apostrophes ne cause pas trop de problème, mais vous devez être prudent de les esperluettes de gauche et de crochets.
Ça dépend vraiment. Si tout ce que vous voulez faire est de demander des devis dans votre chaîne XML, puis "Un".
Mais si il y a du sens ou vous avez besoin d'abstraire le devis (i18n par exemple), XML offre des options plus attrayantes. Par exemple:
Overkill dans de nombreuses situations. Mais si vous avez besoin pour gérer correctement travers le monde de nombreux, variés et souvent incompatibles - schémas de nommage, je pense à propos de l'encodage des noms le long de ces lignes. XML est excellent pour cela.