Domanda

Ho provato a leggere http://www.w3.org/TR/xml -infoset / e la voce di Wikipedia . Ma francamente non sono ancora sicuro di quale sia la differenza.

La citazione:

  

Un documento XML ha un set di informazioni   se è ben formato e soddisfa il   vincoli dello spazio dei nomi. Non c'è   requisito per un documento XML essere   valido per avere informazioni   set.

Dalla voce di Wikipedia sembra non avere senso. Come può un documento non valido avere una semantica, e quindi come può essere un insieme di "informazioni"?

Che cos'è questo 'infoset' che

  

ben formato e soddisfa lo spazio dei nomi vincolato

XML ha? E in che modo è utile in sé. In altre parole, perché semanticamente è necessario definire l'infoset XML ? Ci sono informazioni che non possono essere rappresentate in XML? In tal caso posso vedere il set limitante di XML Infoset, ma in caso contrario XML Infoset è insignificante come il termine "informazioni"?

Grazie per le risposte interessanti: Non riesco ancora a capire perché l'infoset Xml abbia alcuno scopo rispetto al termine infoset. Ma voi ragazzi mi avete dato la risposta diretta alla domanda .

È stato utile?

Soluzione

Un modo utile di pensare alla distinzione tra testo XML e infoset XML è quello di considerare Fast Infoset . Questa è una rappresentazione binaria dell'infoset XML.

Quindi hai un abstract " infoset " che è un modello concettuale che rappresenta i dati XML (nodi, elementi, attributi, ecc.). Questo può essere rappresentato fisicamente come un documento XML di testo o come flusso Fast Infoset. Entrambi rappresentano gli stessi dati, ma in modi radicalmente diversi.

Altri suggerimenti

XML non è testo. XML & Quot; è & Quot; infoset XML. Questo può quindi essere serializzato in testo in un documento XML, ma è la infoset XML che è la realtà.

L'infoset può esistere in memoria come un albero DOM, ad esempio. Esiste in memoria come l'implementazione di un modello di oggetto astratto.

E se lo serializzassi come UTF-8 e poi come UTF-16. Le probabilità sono che i risultati sarebbero due diversi set di bit, ma lo stesso infoset.

Considera anche che con il testo ha senso fare cose come la concatenazione di stringhe. Non si desidera concatenare un & Quot; & Lt; & Quot; nel mezzo di un elemento XML. Devi prima codificarlo. Perché dovresti farlo se fosse solo testo? Se ad esempio hai usato il DOM, diresti semplicemente element.InnerText = & Quot; & Lt; & Quot ;; Quando serializzato, il & Quot; & Lt; & Quot; sarebbe codificato in " & amp; lt; " ;. Eppure è lo stesso infoset.

Un documento XML valido soddisfa i requisiti di un DTD o XSD (o altri standard). Se è ben formato, può comunque essere "non valido", se viola le regole nel DTD o XSD specificato.

Modifica: sono nuovo in quest'area di XML, ma sembra che l'infoset sia la descrizione a "livello astratto" delle parti di un documento XML, indipendentemente dall'attuazione tecnica effettiva, che potrebbe essere, ad esempio, un Implementazione del modello di oggetti del documento.

Un infoset XML è un insieme astratto di concetti come attributi ed entità che possono essere utilizzati per descrivere un documento XML valido. Secondo la specifica, & Quot; Il set di informazioni di un documento XML è costituito da una serie di elementi di informazione; le informazioni impostate per qualsiasi documento XML ben formato conterranno almeno un elemento informativo del documento e molti altri. "

Solo perché un documento XML è un infoset non significa che sia conforme a un XSD ed è un documento XML valido.

Vedi questo link da MSDN. http://msdn.microsoft.com/en-us/library/aa468561.aspx

È davvero una buona spiegazione dei concetti e si spera che te lo chiarisca.

Un buon esempio che ho appena trovato è in WCF PDF di David Chappell . Ecco come funziona quando si utilizza TCP, ad esempio:

  

Per consentire prestazioni ottimali quando entrambi   le parti in una comunicazione sono costruite   su WCF, la codifica del filo utilizzata in questo   case è una versione binaria ottimizzata di   SAPONE. I messaggi sono ancora conformi al   struttura dei dati di un messaggio SOAP,   denominato Infoset, ma loro   la codifica utilizza una rappresentazione binaria   di quell'Infoset anziché il   parentesi angolari e testo standard   formato di XML. Utilizzando questa opzione sarebbe   ha senso comunicare con   applicazione client per call center, da allora   & # 8217; s anche costruito su WCF e   le prestazioni sono una preoccupazione fondamentale.

XML è un linguaggio, quindi ha una sintassi e XML Infoset ha le specifiche del modello di dati, ciò è dovuto alle esigenze delle applicazioni basate sul modello di dati piuttosto che sulla sintassi; XML viene prima di XML Infoset; Riferimento: considerazioni sul protocollo per l'accesso Web Linkbase

XML Infoset è un requisito su come strutturare un documento XML serializzato.

L'XML serializzato può avere forme diverse, come un formato binario ( Fast Infoset ) o testo (la forma più popolare).

Fondamentalmente per il formato di documento XML (testo), ogni elemento e attributo dovrebbe essere definito in XSD attraverso lo spazio dei nomi corrispondente.

Qui troverai un esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top