Ben vandaag aan 't stoeien geweest met de SAX2 implementatie in MSXML 3.0, en zie daar wel de voordelen van in bep. situaties. Bv. bij data replicatie: op 't moment dat je een EndElement event ontvangt kun je meteen de gegevens die je bij 't bijbehorende StartElement event hebt ontvangen direct in een database verwerken. Prachtig bij grote en nogal "platte" XML files.
Maar waar ik nu tegenaanloop: voor zover ik kan zien kan SAX alleen maar URL's parsen (of files, maar dat is in principe hetzelfde), en geen streams of data die via een IP socket binnenkomt.
Wat ik bedoel is, dat 'ie al begint met parsen voordat het hele XML document binnengehaald is.
Is zoiets met SAX ueberhaupt mogelijk?
Wat ik nu gebruik is een eigen clientje die de IP data opvangt en zelf de XML probeert te parsen (en direct posten in de database wanneer 'ie een volledig record heeft binnengekregen), maar dat parsertje is nogal beperkt, geen enkele validatie, van schema's of attributes heeft 'ie nog nooit gehoord, etc. Als ik die kan vervangen door een 'streaming' parser die dat allemaal wel kan, is 't mooi meegenomen.
Het ergste wat dat parsertje ooit voor z'n kiezen heeft gehad was een XML-stream van 109Mb (een volledig klantenbestand van een nieuw aangesloten vestiging). Wanneer je met ISDN routers werkt, is 't dan wel erg prettig dat je de data alvast kunt verwerken voor het hele bestand binnen is...
Maar waar ik nu tegenaanloop: voor zover ik kan zien kan SAX alleen maar URL's parsen (of files, maar dat is in principe hetzelfde), en geen streams of data die via een IP socket binnenkomt.
Wat ik bedoel is, dat 'ie al begint met parsen voordat het hele XML document binnengehaald is.
Is zoiets met SAX ueberhaupt mogelijk?
Wat ik nu gebruik is een eigen clientje die de IP data opvangt en zelf de XML probeert te parsen (en direct posten in de database wanneer 'ie een volledig record heeft binnengekregen), maar dat parsertje is nogal beperkt, geen enkele validatie, van schema's of attributes heeft 'ie nog nooit gehoord, etc. Als ik die kan vervangen door een 'streaming' parser die dat allemaal wel kan, is 't mooi meegenomen.
Het ergste wat dat parsertje ooit voor z'n kiezen heeft gehad was een XML-stream van 109Mb (een volledig klantenbestand van een nieuw aangesloten vestiging). Wanneer je met ISDN routers werkt, is 't dan wel erg prettig dat je de data alvast kunt verwerken voor het hele bestand binnen is...