2012-03-31 9 views
0

Que pensez-vous du contenu binaire en XML par rapport à de simples références à l'emplacement des données?Contenu binaire en XML - Avantages et inconvénients?

Je travaille sur un projet, où le système doit échanger des données complexes - souvent composées de nombreux fichiers différents (généralement des fichiers cad). Une grande partie du matériel à envoyer est confidentielle. Mes collègues ont envisagé d'incorporer des fichiers en tant que contenu binaire dans XML plutôt que de le référencer, mais je ne suis pas sûr des conséquences. J'espère que vous pouvez m'aider.

Cordialement, Morten

+0

Publier cela comme un commentaire plutôt que comme une réponse, car je suis biaisé contre XML. XML est 80% du temps pas la bonne solution pour commencer. De plus, si vous incluez binaire, je ne comprendrais pas le binaire brut mais plutôt la base 64 ou même l'hexagone. Je ne suis pas sûr de savoir comment la plupart des parseurs XML se sentiraient à propos des blobs binaires. – Corbin

+0

Corbin vous ne pouvez pas inclure de binaire brut en XML, il doit donc être codé en base64. –

+0

Je tiens à souligner le commentaire de Richard: ** XML ne peut pas contenir de contenu binaire arbitraire **. La spécification XML 1.0 est très restrictive dans les octets qu'elle autorise dans un fichier. La spécification XML 1.1 permet tout sauf NUL, mais les données binaires arbitraires auront des NUL embarqués. – kdgregory

Répondre

2

Si les données binaires est grande alors vous encourrez presque certainement une pénalité de performance en l'intégrant dans base64 plutôt que référençant. Mais il peut être un prix qui vaut la peine de payer pour la commodité (et peut-être la sécurité). Il est très difficile de donner des conseils sur des décisions de conception comme celle-ci sans avoir une immersion complète dans les exigences et la culture du projet.

+0

Quelle est la raison détaillée de la pénalité de performance? – Morten

+1

Le coût de l'analyse XML est dominé par la boucle "read next character". Si vous stockez les données incorporées dans XML, toutes les opérations sur les données subiront ce coût par caractère. S'il s'agit d'un fichier référencé externe, de nombreuses opérations seront possibles sans ce coût. –

Questions connexes