NL1025125C2 - Werkwijze, inrichting en systeem voor het uitbreiden van een mark-up taal. - Google Patents

Werkwijze, inrichting en systeem voor het uitbreiden van een mark-up taal. Download PDF

Info

Publication number
NL1025125C2
NL1025125C2 NL1025125A NL1025125A NL1025125C2 NL 1025125 C2 NL1025125 C2 NL 1025125C2 NL 1025125 A NL1025125 A NL 1025125A NL 1025125 A NL1025125 A NL 1025125A NL 1025125 C2 NL1025125 C2 NL 1025125C2
Authority
NL
Netherlands
Prior art keywords
elements
dom
node
representation
attributes
Prior art date
Application number
NL1025125A
Other languages
English (en)
Inventor
Gerardus Wilhelmus Jo Kaandorp
Original Assignee
Backbase B V
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Backbase B V filed Critical Backbase B V
Priority to NL1025125A priority Critical patent/NL1025125C2/nl
Priority to US10/578,458 priority patent/US20070266050A1/en
Priority to EP04800177A priority patent/EP1680753A2/en
Priority to PCT/NL2004/000785 priority patent/WO2005045702A2/en
Application granted granted Critical
Publication of NL1025125C2 publication Critical patent/NL1025125C2/nl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Document Processing Apparatus (AREA)

Description

WERKWIJZE; INRICHTING EN SYSTEEM VOOR HET UITBREIDEN VAN EEN
MARK-UP TAAL
De onderhavige uitvinding heeft betrekking op een werkwijze, inrichting en systeem voor het functioneel uitbreiden van een opmaaktaal (mark-up language) voor het vertolken (rendering) van XML volgende (compliant) 5 documentgegevens. De uitvinding heeft tevens betrekking op een computerprogramma voor het implementeren van de werkwijze op een computer.
Alle moderne web browsers ondersteunen twee belangrijke technologieën, namelijk plug-ins en scripting, 10 voor het uitbreiden van de functionaliteit van de browser.
Bij plug-in technologie is het mogelijk om de standaardfunctionaliteit van een browser uit te breiden door het binnenhalén (downloading) en het installeren van afzonderlijke programmatuur. Scripting verwijst naar de 15 mogelijkheid om programmatuur (scripting code) in te voegen in HTML pagina's die binnen de browser draaien (run) binnen het bereik van het op dat moment geladen document. Scripting code kan in wisselwerking staan met de gebruiker en maakt toegang tot de inhoud van het document mogelijk.
20 Op dit moment bestaan geen standaarden om ondersteuning te vereenvoudigen voor het af handelen van de uitgebreide functionaliteit die wordt verschaft door de custom tag gedrag (custom tag behaviour) in de standaard opmaak-talen. Sommige web browser ontwikkelingsteams hebben 25 verscheiden incompatibele oplossingen gecreëerd, vaak gebaseerd op technologieën in eigendom (proprietary technology). In Internet Explorer, versie 5.5 en hoger, worden custom tkg en attribuut gedrag ondersteund door middel van HTML component (HTC) bestanden, die het gedrag van 30 (nieuwe) tags en attributen definiëren. Deze technologieën 1 0 2 5 J 2 5 2 werken slechts in latere versies van Internet Explorer en daarvan afgeleide browsers. Mozilla en de recente versies van op Mozilla gebaseerde browsers, zoals Netscape Communicator, ondersteunen bijvoorbeeld de eXtensible Binding8 Language 5 (XBL), die hoofdzakelijk gebruikt wordt voor het declareren van het gedrag van interface componenten die gecreëerd zijn. met XUL, de eXtensible User Interface Language. XUL wordt gewoonlijk gebruikt om de interface te beschrijven van de browser-toepassing zelf, alhoewel deze tevens gebruikt kan 10 worden voor webpagina's. XBL zou tevens gebruikt kunnen worden om de standaardverzameling van door op Mozilla gebaseerde browsers ondersteunde tags uit te breiden. Deze technologie werkt slechts in op Mozilla gebaseerde browsers.
Zoals hierboven is vermeld ondersteunen web browsers 15 de browser plug-in technologie, hetgeen het mogelijk maakt om de functionaliteit van dé browser uit te breiden door het binnenhalen en installeren van afzonderlijke browser-programmatuurcomponenten en derhalve ondersteuning tot stand te brengen voor custom tag en attribuut gedrag. Deze 20 technologie vereist bij het binnenhalen en eenmaal installeren van voor de browser specifieke plug-ins voordat een webpagina die gebruikt maakt van custom tags /attributen bezocht kan worden. Dit verhindert een uitgebreid toepassing op basis van veiligheidsoverwegingen. Een feit is bovendien 25 dat het installeren van plug-ins vaak omslachtig is.
Tevens is bekend om Java programma's (Java applets) te.gebruiken die binnën een web browser draaien. Niet alle browsers ondersteunen echter deze technologie. Bovendien bestaan verschillende implementaties van Java looptijd (run-30 time) omgeving^voor verschillende web browsers en besturingssystemen. In de meeste gevallen heeft het laden van een toepassingsprogramma (applet) tot gevolg dat de browser een paar seconden wacht teneinde het virtuele 1025125 3 machineprogramma van Java op te starten, welk programma daadwerkelijk het Java-programma draait. Teneinde de Document Object Model (DOM) boom van een in een geheugen van de web browser geladen XML document te bereiken, zou het 5 toepassingsprogramma (applet) nog steeds JavaScript functies moeten aanroepen. Alhoewel Java derhalve een enigszins robuustere omgeving kan verschaffen om custom tag- en attribuut-gedrag te ondersteunen dan JavaScript, is Java minder geschikt voor dit doel.
10 Tenslotte zijn werkwijzen bekend voor het omzetten van custom tags en/of attributen naar standaard tags of voor het veranderen van het gedrag van standaard tags en attributen die scriptcode op de Webserver in plaats van op de cliënt computer gebruiken. Deze werkwijzen vereisen echter 15 specifieke servertechnologie, die niet op algemene wijze in verschillende serveromgevingen kan worden toegepast aangezien in de praktijk serveromgevingen incompatibel zijn. Daarom worden in bestaande serveromgevingen oplossingen in eigendom (proprietary Solutions) voor custom tag- en attribuut-gedrag 20 toegepast.
Een verder bezwaar van het toepassen van server-zijde technologie is dat deze technologie waardevolle bronnen zoals server-zijde CPU, I/O en met name de bandbreedte tussen server en cliënt consumeert.
25 Het doel van de uitvinding is om voor op de XML
standaard, zoals XHTML, gebaseerde documenten, zonder gebruik van een willekeurige technologie die niet standaard (by default) beschikbaar is in de meerderheid van de moderne web browsers, het gebruik van niet-standaard of custom tags te 30 vergemakkelijken, om het gebruik van niet-standaard of custom attributen van bestaande tags te vergemakkelijken en/of om het gedrag van standaard tags en attributen te sturen.
1025125 4
Volgens een eerste aspect van de onderhavige uitvinding wordt een werkwijze verschaft voor het vertolken van documentgegevens die een uitgebreide op XML-gebaseerde opmaak-taal volgen, de werkwijze de stappen omvattende van: 5 - het ophalen van de documentgegevens; - het ontleden (parsing) van de documentgegevens in een document object model (DOM) representatie teneinde een boomstructuur te verschaffen, omvattende knooppunten die representatief zijn voor de documentgegevenselementen die 10 tags en/of attributen omvatten; - het reconstrueren van de document object model (DOM) representatie door het vervangen van de knooppunten van vooraf gespecificeerde elementen van de genoemde documentgegevens elementen door een of meer knooppunten die 15 standaard XML volgende elementen omvatten die standaard tage en attributen hebben; - het vertolken (rendering) van de documentgegevens met de gereconstrueerde document object model (DOM) representatie.
20 De documentgegevens elementen kunnen standaard elementen zijn, dat wil zeggen elementen met standaard tags en standaard attributen die vooraf gedefinieerd zijn in een XML volgende standaard opmaaktaal. Deze standaard elementen zijn bekend voor vele vertolkers (renderers) en kunnen 25 derhalve door de meesten daarvan af gehandeld worden. De gebruikte zinsnede "standaard element" omvat tevens elementen in eigendom (proprietary elements), dat wil zeggen tags en attributen die niet gedefinieerd zijn in één van de XML volgende standaard opmaaktalen, maar slechts ondersteund 30 worden door specifieke vertolkers (renderers) (bijvoorbeeld specifieke web browsers). De onderhavige uitvinding maakt het vertolken (rendering) van elementen in eigendom bevattende documentgegevens door een grote verscheidenheid aan 1025125 5 vertolkers '(renderers) mogelijk, niet noodzakelijkerwijze vertolkers (renderers) zijnde die ontworpen zijn voor het afhandelen van die specifieke in eigendom zijnde (proprietary) tags en/of attributen.
5 De documentgegevens elementen kunnen tevens custom elementen zijn, dat wil zeggen elementen met tags of attributen die voor de bestaande vertolkers (renderers) niet bekend zijn. Custom elementen zijn niet vooraf gedefinieerd in een willekeurig XML volgende standaard opmaaktaal en 10 kunnen derhalve niet op juiste wijze door een willekeurige standaard vertolker (renderer) afgehandeld worden.
De documentgegevens kunnen tevens een combinatie bevatten van één of meer standaardelementen en één of meer custom elementen.
15 In een voorkeursuitvoeringsvorm zijn de vooraf gespecificeerde elementen, elementen met standaard tags en/of attributen die een gegeven functionaliteit verschaffen, waarbij de vooraf gespecificeerde elementen vervangen zijn door standaard XML volgende elementen met één of meer 20 verschillende tags en/of attributen die een gemodificeerde functionaliteit verschaffen. Dit maakt het mogelijk het standaardgedrag van standaard tags en attributen te modificeren, indien dat althans gewenst is. Dit kan bijvoorbeeld het geval zijn wanneer nieuwe functionaliteiten 25 geïntroduceerd moeten worden in bestaande documentgegevens.
In een andere voorkeursuitvoeringsvorm zijn de vooraf gespecificeerde elementen, elementen met custom tags en/of custom attributen, waarbij de vooraf gespecificeerde elementen vervangen zijn door standaard XML volgende 30 elementen die standaard tags en/of attributen hebben. Dit maakt een bijna 'onbeperkte uitbreiding van de functionaliteit die wordt geboden door een willekeurige op XML gebaseerde opmaaktaal, mogelijk.
1025125 6
Men dient te begrijpen dat de gereconstrueerde document object model representatie direct weergegeven kan worden, zonder tussenliggende stappen, zoals terugomzetting van de document object model representatie in een XML volgend 5 bestand en het vervolgens de vertolking van het bestand in een browser.
In een verdere voorkeursuitvoeringsvorm omvat de werkwijze de etappen van: - het reconstrueren van de document object model 10 (DOM) representatie door vervanging van een deelverzameling van de vooraf-gespecificeerde elementen van de genoemde document gegevenselementen door een of meer knooppunten die standaard XML volgende elementen met standaard tags en attributen hebben; 15 - het vertolken (rendering) van de documentgegevens met het gereconstrueerde document object model (DOM) representatie; en - het slechts bij het triggering, bijvoorbeeld wanneer een bepaald specifiek element gedetecteerd wordt, 20 reconstrueren van deze document object model (DOM) representatie door vervanging van de resterende vooraf gespecificeerde elementen van de genoemde document gegevenselementen door een of meer knooppunten omvattende standaard XML volgende elementen met standaard tags en 25 attributen.
In deze uitvoeringsvorm is de boomstructuur levend. Dit betekent dat de boomstructuur direct verbonden is met het weergegeven resultaat. Willekeurige veranderingen in de boom zullen daarom direct vertolkt worden, bijvoorbeeld afgebeeld 30 worden op een computerscherm. Slechts wanneer dat nodig is, dat wil zeggen wanneer een actie van een gebruiker of een externe gebeurtenis van de server dit vereist, worden de tussenliggende elementen vervangen door standaardelementen 1025125 i i i ! 7 | die daadwerkelijk het gedrag aansturen. Op deze wijze kan een looptijd (run-time) besturing van het gedrag tot stand worden gebracht. Met looptijd (run-time) zoals hier gedefinieerd ! wordt bedoeld de tijd gedurende welke het op XML gebaseerde I 5 document daadwerkelijk afgebeeld wordt op het scherm van de cliênt-computer of, met andere woorden, de tijd gedurende i i welke de gebruiker een wisselwerking met het document kan hebben.
i | In een nog verdere uitvoeringsvorm wordt tenminste j 10 een knooppunt van een vooraf gespecificeerd element van de genoemde document gegevenselementen vervangen door een of | meer knooppunten met tussenliggende custom elementen. Slechts I bij triggering, dat wil zeggen bij het detecteren van een | bepaalde specifieke gebeurtenis, bijvoorbeeld de actie van 15 een gebruiker of een externe gebeurtenis van de server, wordt | de verdere stap van het reconstrueren van de. document object ! ' model (DOM) representatie uitgevoerd door vervanging van het tenminste ene knooppunt van het tenminste ene tussenliggende custom element door een of meer knooppunten die 20 standaardelementen met standaard tags en attributen omvatten, i In een verdere voorkeursuitvoeringsvorm omvat de ; ont leeds tap het ontleden van de documentgegevens in een document object model (DOM) representatie teneinde een boomstructuur te verschaffen, omvattende één of meer 25 knooppunten die representatief zijn voor standaard XML ! volgende elementen met voorafbepaalde standaard tags en/of attributen en een of meer knooppunten die representatief zijn j voor custom elementen met een of meer custom tags en/of een i of meer custom attributen; en omvat de reconstructiestap het 30 reconstrueren van de document object model (DOM) representatie döor de vervanging van de knooppunten van i custom elementen door een of meer knooppunten die standaard i · | elementen omvatten.
i | i ! .
h025125 8
Dit oimrat het geval waarin custom attributen in standaard tags afgehandeld worden. De programmatuur-, ontwikkelaars zullen in dit geval in staat zijn gebruik te maken van de kennis die zij reeds hebben over de standaard op 5 XML gebaseerde opmaaktaal die door de uitvinding dient te worden uitgebreid.
Volgens een tweede aspect van de onderhavige uitvinding wordt een inrichting verschaft voor het vertolken van documentgegevens die een uitgebreide op XML-gebaseerde 10 opmaaktaal volgen, waarbij de documentgegevens opgeslagen zijn op een server op afstand (remote server) en toegankelijk zijn via een netwerk, de inrichting omvattende: - een interface voor het ophalen van de XML volgende documentgegevens van de server; 15 - een ontleder (pareer) vóór het ontleden van de documentgegevens in een document object model (DOM) representatie teneinde éen boomstructuur te verschaffen, die knooppunten omvatten die representatief zijn voor de document gegevenselementen die tags en/of attributen omvatten; 20 - een reconstructor voor het reconstrueren van de document object model (DOM) representatie door vervanging van de knooppunten van vooraf gespecificeerde elementen van de genoemde document gegevenselementen door een of meer knooppunten omvattende standaard XML volgende elementen die 25 standaard tags en attributen hebben; - een vertolker (renderer) voor het vertolken van de documentgegevens met de gereconstrueerde document object model (DOM) representatie.
Volgens een derde aspect van de onderhavige 30 uitvinding wordt een systeem verschaft voor het vertolken van XML volgende dodumentgegevens, omvattende een hoofdcomputer (host computer) waarop de XML volgende documentgegevens opgeslagen zijn, een cliëntcomputer, en een hoofdcomputer en 1025125 9 cliëntcomputer verbindend netwerk, waarin de cliëntcomputer omvat: - een netwerkinterface voor het ophalen van de XML volgende documentgegevens van de hoofdcomputer; 5 - een ontleder (parser) voor het ontleden van de opgehaalde documentgegevens tot in een document object model (DOM) representatie teneinde een boomstructuur te verschaffen, die knooppunten omvat die representatief zijn voor de tags en/of attributen omvattende documentgegevens-10 elementen; - een reconstructor voor het reconstrueren van de document object model (DOM) representatie door vervanging van de knooppunten van vooraf gespecificeerde elementen van de genoemde document gegevenselementen door een of meer 15 knooppunten omvattende standaard XML volgende elementen die standaard tags en attributen hebben; - een vertolker (renderer) voor het afbeelden van de documentgegevens met ,de gereconstrueerde document object model (DOM) representatie.
20 Volgens een verder aspect van de uitvinding wordt een gegevensdrager verschaft, bijvoorbeeld een optische schijf, harde schijf, et cetera, die een daarop geregistreerd computerprogrammaproduct bevat, bij de uitvoering waarvan door een processor de hierin beschreven werkwijze wordt 25 uitgevoerd.
Volgens een nog verder aspect van de uitvinding wordt een computerprogramma verschaft voor het uitvoeren, wanneer dit op een computer, bijvoorbeeld een servercomputer of, bij voorkeur, een cliëntcomputer, gedraaid wordt, van de stappen 30 van de hierin beschreven werkwijzen.
Verdere ‘voordelen, kenmerken en details van de onderhavige uitvinding zullen worden verduidelijkt op basis van de volgende beschrijving van enige voorkeursuitvoerings- 1025125 10 vormen daarvan. In de beschrijving wordt verwezen naar de figuren, waarin:
Figuur 1 een schematische representatie is van de topografie van het wereldwijde web;
5 Figuur 2 een schematische representatie is van HTTP
cliënt/server communicatie;
Figuur 3a een voorbeeld van HTML code toont;
Figuur 3b een schematische representatie is van de DOM boom corresponderend met de HTML code van figuur 3a; 10 Figuur 3c een schematische representatie is van de DOM boom, die de relaties toont tussen de knooppunten van de boom;
Figuur 4a het conceptuele OMT model toont van de Document Object Model (DOM) representatie; 15 Figuur 4b het conceptuele OMT model toont van een gereviseerde Document-Object-Model- (DOM) representatie;
Figuur 5 een stroomdiagram is voor het vertolken door de cliëntcomputer van XML volgende documentgegevens;
Figuur 6 een stroomdiagram is dat de vorming van de 20 schaduwboom toont;
Figuren 7a-7d schematische representaties zijn die de constructie van de schaduwboom tonen;
Figuur 8 een stroomdiagram is dat de constructiefase van de schaduwboom toont;
25 Figuur 9a een voorbeeld toont van een originele DOM
boom;
Figuur 9b de creatie van een nieuw element toont;
Figuur 9c de toevoeging van extra knooppunten toont;
Figuur 9d de invoeging toont van het nieuwe element 30 en de verwijdering van het element met de custom tag,·
Figuur &e de verplaatsing van kinderen naar het nieuwe appendeerknooppunt van het element toont; 1025125 11
Figuur 9f een legenda toont die betrekking heeft op figuren 9a-9e;
Figuur 10a-10b een stroomdiagram is dat de reconetructiefase van de DOM representatie toont;
5 Figuur 11a een andere voorbeeld van een originele DOM
boom toont, waarin knooppunten B en E custom tags hebben;
Figuur 11b een legenda is, die betrekking heeft op figuur 11a;
Figuur 11c de DOM boom van figuur 11a na 10 reconstructie toont, waarin de originele boomstructuur opgeslagen is en nieuwe knooppunten toegevoegd zijn;
Figuur 12a en figuur 12c respectievelijk de DOM boom voor en na reconstructie van een voorbeeld van HTML code van annex 1 toont, terwijl figuur 12b de legenda toont die 15 betrekking heeft op figuren 12a en 12c;
Figuren 13a-13d schermafdrukken (screenshots) toont van een voorbeeld van code die draait op een eerste browser (Internet Explorer) en een tweede browser (Mozilla);
Figuur 14a een schematische representatie is van een 20 niet-compleet geconstrueerde DOM boom;
Figuur 14b een schematische representatie is die de creatie van nieuwe elementen toont;
Figuur 14c een schematische representatie is die de toevoeging van extra knooppunten toont; 25 Figuur 14d een schematische representatie is van een verder gereconstrueerde DOM boom;
Figuur 14e de legenda is die betrekking heeft op figuren 14a-14d;
Figuur 15a een schematische representatie is van het 30 proces van het .dynamisch toevoegen van nieuwe knooppunten aan een bestaand knooppunt in de DOM boom; 1025125 12 , Figuur 15b een schematische representatie is van het proces van het dynamisch bijwerken van bestaande knooppunten van een DOM boom; en
Figuur 15c de legenda is die betrekking heeft op 5 figuren 15a en 16b.
De uitvinding verschaft een functionele uitbreiding van een op XML-gebaseerde opmaak met custom tag en attribuut gedrag, dat slechts met gestandaardiseerde en aldus gewone beschikbare features en technologie is geïmplementeerd. De 10 uitvinding vergemakkelijkt het gebruik van nieuwe tags binnen een voorafbepaalde opmaaktaal, voegt nieuwe attributen toe aan bestaande tags, en stuurt het gedrag aan van standaard tags en attributen in documenten die gebaseerd zijn op de XML standaard, zoals XHTML, zonder het gebruik van willekeurig 15 technologie die niet standaard (by default) beschikbaar is in de meeste moderne web browsers.
De uitvinding heeft betrekking op het proces van het initieel ontleden en vertolken van XML documenten alsmede op het daarop volgende proces van de mens-computer interactie 20 met de gebruikerinterface die door dergelijke documenten kan worden beschreven. Dergelijke processen kunnen plaatsvinden in een willekeurig vertolkend computerprogramma (rendering computer program) die "dynamisch HTML" ondersteunt, bijvoorbeeld moderne web browsers zoals Microsoft Internet 25 Explorer, Netscape Communicator, Opera, Mozilla, waaronder willekeurige browser-toepassingen die zijn gebaseerd op de technologie van deze standaard browsers oftewel zogenoemde "afgeleide browsers".
Zoals eerder genoemd is, betreft de uitvinding een 30 werkwijze die ep een systeem en computerprogramma dat een functionele uitbreiding van standaard tags en attributen van een op XMLr-gebaseerde opmaaktaal met nieuw, custom gedrag voor tags en attributen verschaft, waarbij de implementatie 1025125 13 slechts afhangt van gestandaardiseerde en aldus algemeen beschikbare features en technologie. Dit kan elke willekeurige XML vertolkende software of toestel ("renderer") zijn die het Document Object Model (DOM) ondersteunt samen 5 met een scripting-omgeving via welke DOM gegevensstructuren bereikt en gemodificeerd kunnen worden (zoals JavaScript). Voorbeelden van computerprogramma's die dergelijke XML vertolkende software bevatten zijn ondermeer Internet Explorer 5 en verder alsmede Mozilla 1.1. en verder.
10 De uitvinding is niet beperkt tot willekeurige bestaande vertolkingstechnologie, maar heeft betrekking op elke willekeurige toekomstige vertolkingsprogrammatuur (gebaseerd op de huidige bestaande technologie of niet) die de technieken ondersteunt die gebruikt worden door de 15 uitvinding voor het af handelen van custom tag en/of attribuut gedrag.
Voor een gebruiker van de uitvinding, bijvoorbeeld een website programmeur of een toepassingsontwikkelaar, lijkt de uitvinding een "horizontale uitbreiding" van HTML te zijn, 20 doordat de uitvinding zowel de functionaliteit van bestaande tags vergroot alsmede voorziet in nieuwe tags die nieuwe functionaliteiten binnen het domein van HTML en/of XML-gebaseerde opmaak talen realiseren. De uitvinding vereist geen servertechnologie om te kunnen functioneren, maar maakt 25 het mogelijk om standaard tags te mengen met nieuwe tags en optioneel de functionaliteit van de attributen van bestaande tags te verbeteren.
Conventioneel HTML is gericht op het vertolken van documenten. Met DHTML, de combinatie van HTML, Cascading 30 Style Sheets (j£SS) en JavaScript kunnen interactieve documenten gebruikt worden om grafische gebruikersinterfaces te vormen. Deze benadering vereist het creëren van grote delen JavaScript code om de vereiste interactiviteit van de in?5125' 14 interface te,sturen. In de praktijk worden veel benaderingen voor het creëren van DHTML gebruiker-interface-controls gekenmerkt door een relatief lange ontwikkelingstijd, slechte bruikbaarheid en herbruikbaarheid en wel om verscheidene 5 redenen. De uitvinding maakt het mogelijk om DHTML te formaliseren door het uitbreiden van XHTML met tags en attributen die gebruikers-interface-controls implementeren.
Op deze wijze kunnen gebruikersinterfaces en de daarmee corresponderende interactiemodellen op elegante wijze 10 gedeclareerd worden in een opmaaktaal van hoog niveau, in plaats van door arbeidsintensieve programmering in talen zoals JavaScript.
Voor de genoemde gebruikersinterface-declaratie van een hoog niveau vereist toepassing van de uitvinding geen 15 modificatie in de bestaande infrastructuur, hetzij aan de zijde van de cliënt hetzij aan de zijde van de server. In feite hangt dit af van algemene functionaliteit die beschikbaar is in moderne web browsers.
Het Wereldwijde Web (Worldwide Web WWW) verwijst 20 naar de verzameling van publiekelijk toegankelijk web servers op het Internet (figuur 1) . Individuen die op het web grasduinen (browsen) hebben contact met deze web servers via programmatuur die een browser (cliënt) genoemd wordt en die communicatie tussen een personal computer (bijvoorbeeld) en 25 een web server vergemakkelijkt. Deze communicatie gebruikt het HyperText Transfer Protocol of HTTP. De daadwerkelijke vanaf de server naar de cliënt verzonden gegevens kunnen een willekeurig mediaformaat hebben, maar het meest algemene formaat is HTML, een op SGML-gebaseerde opmaak taal (fig. 2). 30 Een vereenvoudigd aanzicht van de werking van een web cliënt wordt in'figuur 2 getoond. Binnenkomende documenten worden verwerkt door de vertolker, het centrale deel van een web browser programma. De vertolker zet het document om in 1025125 15 een boomvormige gegevensstructuur die overeenkomt met de Document Object Model standaard (DOM), zoals gespecificeerd door het World Wide Web Consortium (3WC). De inhoud van deze gegevensstructuur of DOM boom bepaalt wat bijvoorbeeld wordt 5 weergeven op het computerscherm of op de printer. In moderne browsers worden alle veranderingen in de DOM boom direct weerspiegeld op de schermuitvoer.
Naast HTML bestaat er een recentelijk geïntroduceerde opmaaktaal die XML wordt genoemd, welke taal gestructureerd 10 is en - in tegenstelling tot HTML - geen presentatieregels definieert wanneer deze alleen gebruikt wordt. Een verdere ontwikkeling betreft een opmaaktaal die bekend staat als XHTML, hetgeen een op XML-gebaseerde versie is van HTML en in grote mate op HTML lijkt, echter zich conformeert aan de 15 striktere XML standaard. HTML, XML en XHTML gebruiken tags en attributen als hoofdmiddelen om gegevens te beschrijven. Wanneer bijvoorbeeld <img src="http:/www.w3.org/lcons/w3c main" /> ingevoegd wordt in een XHTML document, zal dit ervoor zorgen dat een beeld wordt ingevoegd in een document. In dit 20 geval is de tag wimg" en is het attribuut “src".
Een DOM boom bestaat uit knooppunten die andere knooppunten als hun kinderen hebben. Knooppunten bestaan in verschillende types, waarbij de twee belangrijkste typen het type element en het type tekst is. Knooppunten van het type 25 element corresponderen met tags, knooppunten van het type tekst corresponderen gewoonlijk met de gegevens tussen tags. Figuren 3a en 3b tonen een deel van een voorbeeld HTML bestand samen met de daarbij behorende DOM boom (figuur 3b), met twee knooppunten van het type tekst: wsome text" en nbold 30 text". Figuur 3c toont de onderliggende relaties in een DOM boom in detail, met pijlen voor de knoopreferenties naar het eerste kind, laatste kind, eerdere broer/zus, volgende broer/zus en ouder.
1025125 * 16
Figuur 4a ie een OMT model dat één van de voorkeursuitvoeringsvormen van de uitvinding af beeldt. Dit model representeert niet noodzakelijkerwijze een werkelijke implementatie van de uitvinding; het model illustreert 5 slechts de natuur en de resultaten van de uitvinding volgens het object georiënteerde paradigma. In dit logische model kan de uitvinding geïdentificeerd worden als de BACKBASE Element klasse. Zoals men kan zien in figuur 4a kan men alle standaard HTML tags, zoals <b> en <div>, beschouwen als 10 zijnde afgeleid van de klasse DOM Element. In figuur 4b erven deze tags nu op logische wijze de functionaliteit van het BACKBASE Element. Indien een toepassing van de uitvinding derhalve bijvoorbeeld een sleep-en-neerlaat (drag-and-drop) functionaliteit implementeert door het definiëren en 15 implementeren van het gedrag van de tags "sleepbaar" en "neerlaatontvanger", kunnen DOM Elementen corresponderend met standaard tags, indien het attribuut "sleepbaar" ingesteld werd op "ja", versleept en neergelaten worden in bijvoorbeeld een <div> element met het attribuut "neerlaatontvanger" 20 ingesteld op "waar".
Volgens een voorkeursuitvoeringsvorm is de werkwijze voor het afbeelden van XHTML gegevens als volgt: 1. Dé vertolker haalt de XML gegevens (het "document"), bijvoorbeeld een XHTML bestand, op vanaf 25 een bestandsysteem of web server (figuur 5) door gebruik te maken van standaardmiddelen zoals HTTP.
2. De vertolker ontleedt dit document en creëert een corresponderende DOM boom die de structuur van het document weerspiegelt.
30 3. Gedurende of na stap (2) creëert de vertolker een representatie van de DOM boom op de huidige uitvoerinrichting daarvan, in de meeste gevallen een computerscherm. Onbekende tags en/of attributen 1 025125 ' 17 . worden genegeerd. Zij worden echter gerepresenteerd in de DOM boom van het document. Normaliter. stopt het proces op dit punt.
5 De DOM boom wordt bij voorkeur, maar niet noodzakelijkerwijs, gemodificeerd in een twee-fase proces (zie ook figuur 6):
Fase 1: Schaduwboom bouwfase. Een secundaire boomstructuur, 10 de °schaduwboom", wordt gecreëerd, in welke structuur de huidige (originele) DOM structuur bewaard wordt.
Fase 2: DOM boom reconstructie fase. De DOM boom wordt gemodificeerd op een knooppunt-voor-knooppunt basis door a) vervanging van bepaalde elementen door nieuwe knooppunten en 15 b) door het modificeren van bepaalde eigenschappen van bepaalde elementen.
Alhoewel de schaduwboom niet een absolute vereiste is voor de uitvinding om te kunnen werken, maakt het bewaren van de samenstelling van de DOM boom ter modificatie een 20' eenvoudige toegang tot de originele structuur later mogelijk. De schaduwboom wordt gecreëerd door het opslaan van de volgendè eigenschappen (tabel 1) van elk element in altematieve gegevensonderdelen: 25 Tabel 1. Lijst van DOM elementeigenschappen en corresponderende schaduwboomeigenschappen.
DOM Element-eigenschap Schaduwboom-eigenschap sersteKind_oEerste_ laatsteKind_oLaatste_ 3.0 volgendeBroer/Zus ©Volgende eerdereBroer / Zus_oVorige_
Dude rKnooppunt_©Ouder_ 1025125 18
In deze uitvoeringsvorm wordt de schaduwboom gecreëerd door het knooppunt-voor-knooppunt doorkruisen van de DOM boom van het document. Figuren 7a-7c tonen hoe de originele DOM boom relaties bewaard worden in de schaduwboom 5 en wat het effect na reconstructie is. Figuur 8 beschrijft het algoritme door gebruik te maken van een stroomdiagram: 1. Het algoritme start bij het voetknooppunt (root node) van een DOM boom, vaak het lichaam (body) van een document.
10 2. De vijf attributen die opgesomd zijn in de bovenstaande tabel worden geinitialiseerd met nul-waarden.
3. Indien het knooppunt geen kindknooppunten heeft, eindigt het proces.
4. Wanneer een kindknooppunten toegevoegd wordt aan 15 de ouder in de schaduwboom, worden de oEerste en oLaatste eigenschappen van de ouder bij gewerkt, wanneer dat noodzakelijk is. Tevens worden de oVorige-, oVolgende- en oOuder-eigenschappen van het kindknooppunt en de broer/zussen daarvan in de schaduwboom bij gewerkt, wanneer dat 20 noodzakelijk is.
5. Voor elk kind wordt een recursieve aanroep gedaan zodat het algoritme kan "backtracken" na de bladeren van een deel van een DOM boom te hebben bereikt. Deze stap is geïntroduceerd om het stroomdiagram duidelijker te maken, 25 maar representeert niet een voordelige programmeerbenadering.
6. Indien het type kindknooppunt niet een element is, ga naar stap 5 (tekstknooppunten, commentaarknooppunten, etc. worden overgeslagen en vormen geen deel van de schaduwboom) .
7. Het proces gaat door bij stap 2 voor het huidige 30 kindknooppunt.
De bovengenoemde werkwijze wordt verder verduidelijkt in figuren 7a-7c. Figuur 7a toont de originele DOM boom.
1025125' 19
Knooppunt Ά heeft een knooppunt B als enig kind. Figuur 7b toont de situatie na stap 1, net voor reconstructie. De originele boomrelaties zijn bewaard in de schaduwboom. Figuur 7c toont de situatie na stap 2. Knooppunt B' heeft knooppunt 5 B vervangen, terwijl de originele boomstructuur nog steeds behouden is.
In de reconstructiefase van de DOM boom, doorkruist de werkwijze de DOM boom knooppunt-voor-knooppunt. Startend bijvoorbeeld de in figuur 9 aangetoonde DOM boom, wordt 10 wanneer een element met een custom tag ("custom element1’) wordt tegengekomen, een nieuw knooppunt gecreëerd (bijvoorbeeld een <div> element in figuur 9b) . Optioneel worden additionele knooppunten (afhankelijk van de implementatie eisen van de custom tag) toegevoegd aan dit 15 nieuwe knooppunt (twee <div> elementen in figuur 9c; het element dat gelevérd is met "append" zal de kinderen van het custom element gaan bevatten). Het nieuwe knooppunt wordt ingevoegd in de kinderenlijst van de ouder, en wel onmiddellijk vóór het custom element (figuur 9d). Daarna 20 wordt het element met de custom tag verwijderd uit de DOM boom (figuur 9d) . Figuur 9e toont hoe de kinderen van het custom element verplaatst worden naar het nieuwe knooppunt (of naar een deel van de sub-boom waarvan het nieuwe knooppunt de voet (root) vormt - het element dat in figuur 9e 25 van het label "append" voorzien is).
Tenslotte worden het nieuwe knooppunten en het custom element onderling verbonden door aan elk daarvan een eigenschap te geven die een referentie naar de ander bevat (vergelijk de stippellijn in figuur 9e). Op deze wijze 30 blijven het originele knooppunt en al zijn attributen of andere gegevensknooppunten bereikbaar.
Figuren 10a en 10b verschaffen een gedetailleerde beschrijving van de werkwijze voor ondersteuning van custom ..
1025125 20 tags en custpm attributen. In deze uitvoeringsvorm omvat de werkwijze de stappen van: 1. Start het algoritme bij het originele voetelement (root element) (KNOOPPUNT) van een DOM boom, vaak het lichaam 5 (body) van het document.
Indien de tag van KNOOPPUNT niet ondersteund wordt door de uitvinding, spring naar stap 20.
2. Creëer een nieuw knooppunt, genoemd NIEUWKNOOPPUNT, meestal van het type element.
10 Indien geen attributen (standaard en/of custom) zijn geleverd voor het knooppunt NIEUWKNOOPPUNT en derhalve geen behoefte ie aan bewerkingen, ga door naar stap 6.
3. Verwerk attributen van KNOOPPUNT.
4. Indien geen extra knooppunten (zoals de twee 15 elementen in figuur 9c) nodig zijn, spring naar stap 9.
De extra knooppunten (die op zichzelf knooppunten kunnen hebben) worden gecreëerd en toegevoegd aan NIEUWKNOOPPUNT.
5. Wijs een van de extra knooppunten, APPENDEERKNOOPPUNT genoemd, aan om de houder van de 20 kindknooppunten van het originele knooppunt te zijn. (In bepaalde praktische gevallen kan deze rol toegewezen worden aan verscheidene kindknooppunten). Ga door met stap 10. APPENDEERKNOOPPUNT wordt ingesteld op het zojuist gecreëerde knooppunt.
25 6. Indien het originele knooppunt geen ouderknooppunt heeft, ga door naar stap 13.
7. Voeg NIEUWKNOOPPUNT toe aan de ouder van het originele knooppunt door het invoegen daarvan onmiddellijk vóór (of na) KNOOPPUNT.
30 8. Verwijder het originele knooppunt (losgekoppeld) van zijn ouder.
9. Indien KNOOPPUNT geen kindknooppunten heeft, ga door naar stap 16.
1025125 21 10. ' Verplaats het eerste (resterende) kindknooppunt vanaf het originele knooppunten naar APPENDEERKNOOPPUNT. Spring terug naar stap 13.
11. Verbind NIEUWKNOOPPUNT en KNOOPPUNT onderling met 5 elkaar (dat wil zeggen dat beide een attribuut krijgen die verwijst naar de ander) .
12. Indien APPENDEERKNOOPPUNT geen kindknooppunten heeft (het originele knooppunt zou eveneens geen kindknooppunten hebben), stop het proces. Andere duidt 10 "kinderen" nu de kindknooppunten van APPENDEERKNOOPPUNT aeui.
13. Doe voor elk kind in "kinderen" een recursieve aanroep zodat het algoritme kan "backtracken" na de bladeren (leaves) van een deel van de DOM boom te hebben bereikt.
(Deze stap is geïntroduceerd om het stroomdiagram duidelijker 15 te maken, maar representeert geen voordelige wijze van programmering).
14. Indien het type kindknooppunt niet element is, ga naar stap 17 (tekst knooppunt en, commentaarknooppunten, etc. worden overgeslagen aangezien zij geen mogelijke custom tags 20 zelf hebben noch willekeurige kinderen hebben die deze zouden kunnen hebben).
15. Het proces gaat door bij stap 2 voor het huidige kindknooppunt (KNOOPPUNT verwijst nu naar die van kindknooppunt).
25 16. Indien geen attributen (standaard en/of custom) zijn geleverd die KNOOPPUNT bewerking behoeven, ga door naar stap 22.
17. Bewerk attributen van KNOOPPUNT.
Indien KNOOPPUNT geen kindknooppunten heeft, beëindig het 30 proces. Anders jjluidt "kinderen" nu de kindknooppunten van het KNOOPPUNT aan; ga door naar stap 17.
De bovenstaande werkwij zes tappen worden verder verduidelijkt in figuren 11a en 11c. Voor de duidelijkheid 1025125 22 toont figuur 11b een gedetailleerd aanzicht (waaronder alle relaties) van het gecombineerde resultaat van stap 1 en stap 2 op de in figuur 11a getoonde DOM boom.
Tabel 2 tóont een voorbeeld van XHTML-broncode die 5 afhangt van de uitvinding ("backbase_mini.j 8") om de vereiste functionaliteit voor de *treew tag en het "tooltip" attribuut. Figuur 12a beeldt de DOM boom af voor dot voorbeeld van XHTML-code terwijl figuur 12b de betekenis uitlegt van de verschillende in figuur 12a en 12c getoonde 10 delen. In figuur 12c is de structuur van de DOM boom na reconstructie getoond.
Tabel 2. Voorbeeld van XHTML broncode 15 khtml xmlns:b= "http: //www. backbase. com" > <head> <script type=,,text/javaecriptn src="backbase_mini. j s " x/script > </head> 20 cbody onLoad="MASTER_CONTROL_PROGRAM_INIT();"> <b:tree> 1. boom voet <b:tree tooltip="item l">item l.l</b:tree> <b:tree tooltip«=nitem 2">item 1.2</b:tree> 25 </b:tree> .
</body> „ </html>_ 1025125 23
Appendix 1 is een werkende minimale implementatie van de uitvinding die de "tree" tag en het "tooltip" attribuut ondersteunt. De schaduwboomfase is in deze code niet 5 geïmplementeerd. Figuur 13a-13d tonen schermweergaven van Microsoft Internet Explorer en Mozilla die de in tabel 2 en appendix 1 opgenomen code draaien. Figuur 13a toont een schermweergave van een voorbeeld van code die draait op de Internet Explorer browser. Figuur 13b toont een 10 schermweergave van een voorbeeld van figuur 13a, na "boom voet" te hebben aangeklikt en na boven "item 1.2" te hebben gehangen. Figuren 13c en 13d tonen corresponderende schermweergaven indien éen andere web browser (Mozilla) wordt gebruikt.
15 Een andere voorkeursuitvoeringsvorm van de onderhavige uitvinding wordt uiteengezet in figuren 14a-14d. In deze uitvoeringsvorm wordt slechts één van beide, custom elementen (met een custom tag en/of een custom attribuut) vervangen in de reconstructiefase. Reconstructie van het (de) 20 resterende custom element (en) in corresponderende uiteindelijke standaardelementen kan vertraagd worden totdat bijvoorbeeld gebruikersinvoer of een externe gebeurtenis dit vereist. Indien we het voorbeeld van figuur 9d beschouwen, zien we dat het eerste custom element <custl> gereconstrueerd 25 is. Het tweede custom element <cust2> is echter nog niet gereconstrueerd. Bij het opstarten reconstrueert bijvoorbeeld de browser de DOM boom door vervanging van alleen het eerste custom element. Slechts in een later stadium wanneer het gereconstrueerde eerste custom element geactiveerd wordt, 30 wordt de DOM boom opnieuw gereconstrueerd door vervanging van het tweede custom element <cust2> door een of meer standaardelementen, zoals is getoond in figuren 14b-14e.
1025125 24
In .een verdere voorkeursuitvoeringsvorm worden een of meer nieuwe elementen dynamisch toegevoegd, dat wil zeggen tijdens looptijd (run time) van het programma, aan een bestaand element. Dit is getoond in figuur 15, waarin nieuwe 5 elementen <new> toegevoegd wordt aan het bestaande eerste element <origl>. De nieuwe elementen kunnen door de vertolker in elk stadium geladen worden, dat wil zeggen tijdens het opstarten of tijdens de looptijd (run time). De nieuwe elementen kunnen standaard elementen of custom elementen 10 zijn. In een andere voorkeursuitvoeringsvorm kunnen een of meer bestaande elementen vervangen worden door een of meer nieuwe (standaard en/of custom) elementen. Dit is bijvoorbeeld weergegeven in figuur 15b, waarin het bestaande derde element <origl> van de boom vervangen wordt door een 15 nieuw knooppunt <new> dat een verschillend gedrag kan verschaffen.
De onderhavige uitvinding is niet beperkt tot de bovenbeschreven voorkeursuitvoeringsvoimen daarvan. De rechten daarvan worden gedefinieerd door de volgende 20 conclusies, binnen de strekking waarvan velerlei modificaties denkbaar zijn.
1025125 25 APPENDIX 1 function oBrowserO { var sUA = navigator.userAgent.toLowerCase(); 5 this.ie ((sUA. indexOf ('msie') != -1) && (sUA.indexOf ('opera') - 1)) ? true ; false; return this; } var oBrowser,oBody,oToolTipNode = null; 10 function MASTER_CONTROL_PROGRAM_INIT () { oBrowser = new oBrowser(); oBody o (oBrowser.ie && document.documentElement && document.body.clientHeight <« 20) ? document. documentElement : oBody o document .body; 15 DOM_Reconstruct(oBody,false); function DOM_GetAtt(sAtt,oNode) { return oBrowser.ie ? oNode[sAtt] : oNode.getAttribute(sAtt); } 20 function DOM_NormalizeTag(oNode) { if (oBrowser.ie) var sTag = oNode.tagName; else { var. sTag = oNode.nodeName.split(1s1)[1] ; if (tsTag) sTag = oNode.nodeName; 25 if (sTag) oNode.sTag = sTag.toüpperCase(); } function DOM_Reconstruct(oNode) { DOM_NormalizeTag(oNode); 30 if (oNode.sTag « 'TREE') PARSEJTREE(oNode); else { oNode.oElm = oNode; oNode.oElm.oNode = oNode; DOM_ReconstructKids(oNode); 35 } if (DOM_GetAtt (' tooltip',oNode)) EVENT_Add(oNode.oElm ? oNode.oElm s oNode); } function DOM_ReconstructKide(oNode) { 40 for (var i = 0; i < oNode.childNodes.length; i++) { var oKid = oNode.childNodes[i] ; if (oKid.nodeType == 1) DOM_Reconstruct (oKid); } } 45 function BUILD_CreateReplaceElm(sTag,oNode) { var oElm = document.createElement(sTag); if (oNode.parentNode) { oNode.paarentNode. insertBefore (oElm, oNode); oNode.parentNode.removeChild(oNode); 50 } while (oNode.childNodes.length) oElm.appendChild(oNode.childNodes[0]); oElm.oNode = oNode; 1025125 26 oNode.oElm =. oElm; oElm.sTag » oNode.sTag; return oElm; } 5 function PARSE_TREE(oNode) { var oElm <= BUILD_CreateReplaceElm('DIV',oNode) ; oNode.oLabel = document.createElement(1 SPAN'); oNode.oNestedTrees - document.createElement(1DIV'); oNode.oNestedTrees.style.paddingLeft = 'lOpx'; 10 oNode.oNestedTrees.style.display = 'none'; while (oElm.childNodes.length) { var oChildNode = oElm.childNodes[0]; DOM_NormalizeTag(oChildNode); if (oChildNode.sTag 'TREE') 15 oNode. oNestedTrees. appendChild (oChildNode) else oNode. oLabel. appendChild (oChildNode); } oElm.appendChild(oNode.oLabel) ; oElm. appendChild (oNode. oNestedTrees); 20 i£ (oNode.oNestedTrees.childNodes.length) { oNode.oLabel.oNode = oNode; oNode.oLabel.onclick = TREE_CLICK; } DOM ReconstructKids (oNode.oLabel) ; 25 } function TREE__CLICK (eËvent) { var oNode = this.oNode; if {loNode.oNestedTrees.bRendered) { for (var i = 0; i < oNode.oNestedTrees.childNodes.length; i++) 30 DOM_Reconstruct (oNode.oNestedTrees.childNodes [i]); oNode.oNestedTrees.bRendered = true; } if (oNode.oNestedTrees.childNodes.length) { oNode.oNestedTrees.style.display = oNode.bOpen ? 'none' : '·; 35 oNode.bOpen = !oNode.bOpen; }· } function EVENT_Add(oElm) { if (oBrowser.ie) { 40 oElm.onmouseover = EVENT_Over; oElm.onmouseout = EVENT_Out; } else { oElm. addBventListener ('mouseover', EVENT_Over, false); oElm.addEventListener('mouseout',EVENT Out,false); 45 } } function EVENT_FindNode(oElm) { var oNode =^-oElm.oNode; 50 if (!oNode) { while (oElm.parentNode) { oElm = oElm.parentNode; if (oElm.oNode) break; } 1025125 27 oNode = oElm.oNode; } return oNode; } 5 function EVENT_Over(eEvent) { var oBlm = oBrowser.ie ? window.event.srcBlement : this; oNode = EVENT_FindNode (oBlm) ; if (DOM_GetAtt('toóltip',oNode)) { if (!oToolTipNode) { 10 oToolTipNode = document.createElement('DIV'); oToolTipNode.style.position = 1 absolute'; oToolTipNode.style.backgroundColor = '#BBEEEE1; oBody.appendchild(oToolTipNode); } 15 oToolTipNode. innerHTML » DOM_GetAtt (1 tooi tip', oNode) ; oToolTipNode. style. left a _iMouseX + 'px'; oToolTipNode.style.top a _iMouseY + 'px'; OToolTipNode. style. display = ' ' ; } 20 if (leEvent) eEvent = window.event; i f (eEvent.stopPropagation) eEvent.stopPropagat ion(); else eEvent.camcelBubble - true; return false; } ' ‘ 25 function EVENT__Out (eEvent) { var oElm = oBrowser.ie ? window.event.srcElement : this; oNode = EVENT_FindNode(oBlm); if (DOM_GetAtt (' tooltip', oNode)) oToolTipNode. style. display a 'none'; 30 if (leEvent) eEvent a window.event; if (eEvent.stopPropagation) eEvent.stopPropagation(); else eEvent.cancelBubble true; return false; } 35 var _iMouseXf_iMouseY; function EVENT_MouseMove(eEvent) { _iMouseX a (oBrowser.ie) ? event.x - 2 : eEvent.pageX; iMouseY = (oBrowser.ie) ? event.y - 2 : eEvent.pageY; } “ 40 document.onmousemove = EVENT_MouseMove; 1025)25 • i

Claims (29)

1. Werkwijze voor het vertolken (renderen) van documentgegevens die voldoen aan een XML volgende (compliant) opmaaktaal, de werkwijze de etappen omvattende van: - het ophalen van de documentgegevens; 5. het ontleden van de documentgegevens in een document object model (DOM) representatie teneinde een boomstructuur te verschaffen, die knooppunten omvat die representatief zijn voor tags en/of attributen omvattende documentgegevens-elementen; 10. het reconstrueren van de document object model (DOM) representatie door het vervangen van de knooppunten van vooraf gespecificeerde elementen van de genoemde documentgegevens-elementen door een of meer knooppunten die standaard XML volgende (compliant) elementen omvatten, welke 15 elementen standaard tags, en attributen hebben; - het vertolken (renderen) van de documentgegevens met de gereconstrueerde document object model (DOM) representatie.
2. Werkwijze volgens conclusie 1, waarin de vooraf-20 gespecificeerde elementen elementen zijn met standaard tags en/of attributen die een functionaliteit verschaffen, waarbij de vooraf-gespecificeerde elementen vervangen worden door standaard XML volgende elementen met een of meer verschillende tags en/of attributen die een gemodificeerde 25 functionaliteit verschaffen.
3. Werkwijze volgens conclusie 1 of 2, waarin de vooraf-gespecificeerde elementen elementen zijn met custom tags en/of custom attributen, waarbij de vooraf-gespecificeerde'elementen vervangen worden door standaard XML 30 volgende elementen met standaard tags en/of attributen. 1025125"
4. Werkwijze volgens een der voorafgaande conclusies, omvattende de stappen van: - het reconstrueren van de document object model (DOM) representatie door vervanging van een deelverzameling 5 van de vooraf-gespecificeerde elementen van de genoemde document gegevenselementen door een of meer knooppunten die standaard XML volgende elementen met standaard tags en attributen hebben; - het vertolken van de documentgegevens met het 10 gereconstrueerde document object model (DOM) representatie; en - het slechts bij het triggering, bijvoorbeeld wanneer een bepaald specifiek element gedetecteerd wordt, reconstrueren van dit document object model (DOM) 15 representatie door vervanging van de resterende vooraf gespecificeerde elementen van de genoemde document gegevenselementen door een of meer knooppunten die standaard XML volgende elementen met standaard tags en attributen omvatten.
5. Werkwijze volgens conclusie 4, waarin het triggeren veroorzaakt wordt gedurende de looptijd door een actie van de gebruiker of door een externe gebeurtenis, bijvoorbeeld voortkomend uit de server.
6. Werkwijze volgens een der voorafgaande conclusies, 25 waarin: - de ontleedstap omvat het ontleden van de documentgegevens in een document object model (DOM) representatie teneinde een boomstructuur te verschaffen, die een of meer knooppunten omvat die representatief zijn voor 30 standaard XML volgende elementen met standaard tags en/of attributen en eén of meer knooppunten die representatief zijn voor custom elementen met een of meer custom tags en/of een of meer custom attributen; en 1025125' - de' reconstructies tap omvat het reconstrueren van de document object model (DOM) representatie door vervanging van de knooppunten van custom elementen door een of meer standaard elementen omvattende knooppunten.
7. Werkwijze volgens een der voorafgaande conclusies, waarin de stap van het reconstrueren van de document object model (DOM) representatie omvat het bereiken en het modificeren van de DOM representatiegegevens door het uitvoeren van programmacode, bij voorkeur scriptcode.
8. Werkwijze volgens conclusie 7, waarin een JavaScript interpreteereenheid (interpreter) toegepast wordt om de scriptcode uit te voeren.
9. Werkwijze volgens een der voorafgaande conclusies, waarin de stap van het reconstrueren van de DOM representatie 15 de stappen omvat van: a) het knooppunt-voor;-knooppunt recursief doorkruisen van de DOM representatie; b) bij detectie van een knooppunt dat vervangen dient te worden: 20 bl) het creëren van een nieuw knooppunt van standaard elementen; b2) het optioneel creëren van een sub-boom van een of meer additionele knooppunten door toevoeging van deze additionele knooppunten aan het zojuist gecreëerde knooppunt; 25 b3) het invoegen van het nieuwe knooppunt en de additionele knooppunten, indien aanwezig in de kinderenlijst van de ouders van de document object model (DOM) representatie op een positie onmiddellijk vóór of na het knooppunt dat representatief is voor het knooppunt dat 30 vervangen dient,.,te worden; b4) het verwijderen van een knooppunt dat vervangen dient te worden uit de document object model (DOM) representatie; 1025125 b5) het verplaatsen van een of meer kinderen van het verwijderde knooppunt naar het nieuwe knooppunt of naar een vooraf ingesteld additioneel knooppunt/ indien aanwezig, dat deel uitmaakt van de sub-boom waarvan het nieuwe 5 knooppunt de voet (root) is.
10. Werkwijze volgens conclusie 9, omvattende de stap van het onderling verbinden van het nieuwe knooppunt en het genoemde knooppunt dat vervangen diende te worden.
11. Werkwijze volgens conclusie 10, waarin de stap 10 van het verbinden omvat het aan zowel aan het te vervangen knooppunt als aan het nieuwe knooppunt verschaffen van een attribuut dat een referentie naar elkaar bevat.
12. Werkwijze volgens een der voorafgaande conclusies, omvattende na de stap van het ontleden van de 15 documentgegevens in de document object model (DOM) representatie de additionele stap van het bewaren van de huidige document object model (DOM) representatie in een document object model (DOM) schaduwrepresentatie.
13. Werkwijze volgens conclusie 12, omvattende het 20 preserveren van de DOM element attributen eerste kind, laatste kind, volgende broer/zus, vroegere broer/zus en ouderknooppunt voor alle in de huidige documentgegevens beschrevën DOM elementen.
14. Werkwijze volgens conclusie 12 of 13, omvattende 25 het knooppunt-voor-knooppunt doorkruisen van de DOM representatie en het bewaren van de DOM representatie in de DOM schaduwrepresentatie, door: a) het starten met een voetknooppunt (root node); b) het initialiseren van tenminste de attributen die 30 representatief zijn voor het eerste knooppunt, het laatste knooppunt, het volgende broer/zus knooppunt, het vorige broer/zus knooppunt en het ouderknooppunt met vooraf gedefinieerde startwaarden, bijvoorbeeld nul-waarden; 1025125“ . c) het detecteren of het knooppunt een kindknooppunt . heeft; d) indien het knooppunt een kindknooppunt heeft, het toevoegen van dat kindknooppunt aan het knooppunt in de DOM 5 schaduwrepresentatie door het bij werken van de waarden van de attributen eerste kind en laatste kind van het knooppunt en het bij werken van de waarden van de attributen vorigeBroër/Zus, volgendeBroer/Zus en ouderKnooppunt van het kindknooppunt en, wanneer noodzakelijk, de nieuwe 10 broers/zussen daarvan; e) het herhalen van etappen b-d voor elk verder kindknooppunt.
15. Werkwijze volgens een der voorafgaande conclusies, waarin de stap van het ophalen van de 15 documentgegevens het ophalen van de gegevens van een server op afstand (remote server) omvat.
16. Werkwij ze volgens een der voorafgaande conclusies, waarin de stap van het vertolken (renderen) van de documentgegevens met de gereconstrueerde document object 20 model (DOM) representatie wordt uitgevoerd door een standaard browser.
17. Werkwijze volgens een der voorafgaande conclusies, omvattende: - het reconstrueren van de document object model 25 (DOM) representatie door vervanging van tenminste een knooppunt van een vooraf gespecificeerd element van de genoemde document gegevenselementen door een of meer knooppunten met tussenliggende custom elementen; - het vertolken (renderen) van de documentgegevens 30 met de gereconstrueerde document object model (DOM) representatie dóór gebruik te maken van het tenminste ene tussenliggende custom element; en 1 0251 2 5— - 'het bij triggering reconstrueren van de document object model (DOM) representatie door vervanging van het tenminste ene knooppunt van het tenminste ene tussenliggende custom element door een of meer knooppunten die 5 standaardelementen met standaard tags en attributen omvatten.
18. Werkwijze volgens een der voorafgaande conclusies, waarin de XML volgende documentgegevens een XHTML document vormen.
19. Werkwijze volgens een der voorafgaande 10 conclusies, omvattende de stap van het dynamisch toevoegen van een of meer nieuwe elementen aan een bestaand element.
20. Werkwijze volgens een der voorafgaande conclusies, omvattende de stap van het dynamisch vervangen van een of meer bestaande elementen door een of meer nieuwe 15 elementen.
21. Inrichting voor het vertolken (renderen) van documentgegevens die een uitgebreide XML volgende opmaaktaal volgen, waarbij de documentgegevens opgeslagen worden op een server op afstand (remote server) en bereikbaar zijn via een 20 netwerk, de inrichting omvattende: - een interface voor het ophalen van de XML volgende documentgegevens van de server; - een ontleder (parser) voor het ontleden van de documentgegevens in een document object model (DOM) 25 representatie teneinde een boomstructuur te verschaffen, die knooppunten omvatten die representatief zijn voor de document gegevenselementen waaronder tags en/of attributen; - een reconstructor voor het reconstrueren van de document object model (DOM) representatie door vervanging van 30 de knooppunten,.yan vooraf gespecificeerde elementen van de genoemde document gegevenselementen door een of meer knooppunten die standaard XML volgende en standaard tags en attributen hebben elementen omvatten; 1025125 - een vertolker (renderer) voor het vertolken van de documentgegevens met de gereconstrueerde document object model (DOM) representatie.
22. Inrichting volgens conclusie 21, waarin de vooraf 5 gespecificeerde elementen elementen zijn met standaard tags en/of attributen die een bepaalde functionaliteit verschaffen en de reconstructor is aangepast teneinde de vooraf gespecificeerde elementen te vervangen door standaard XML volgende elementen die een of meer de verschillende tags 10 en/of attributen hebben die een gemodificeerde functionaliteit verschaffen.
23. Inrichting volgens conclusie 21 of 22, waarin de vooraf gespecificeerde elementen elementen zijn met custom tags en/of custom attributen en de reconstructor is aangepast 15 teneinde de vooraf gespecificeerde elementen te vervangen door standaard XML volgende elementen die standaard tags en/of attributen hebben.
24. Inrichting volgens conclusie 21, 22 of 2, waarin de reconstructor aangepast is teneinde de werkwijzestappen 20 van een van de conclusie 4-20 uit te voeren.
25. Systeem voor het vertolken (renderen) van XML volgende documentgegevens, omvattende een hoofdcomputer (host computer) waarop de XML volgende documentgegevens opgeslagen zijn, een cliënt computer, een de hoofdcomputer en cliënt 25 computer verbindend netwerk, waarin de cliënt computer omvat: - een netwerkinterface voor het ophalen van de XML volgende documentgegevens van de hoofdcomputer; - een ontleder (pareer) voor het ontleden van de opgehaalde documentgegevens tot in een document object model 30 (DOM) representatie teneinde een boomstructuur te ‘ I verschaffen, omvattende knooppunten die representatief zijn voor de document gegevenselementen die tags en/of attributen omvatten; 1025125" » - een reconstructor voor het reconstrueren van de document object model (DOM) representatie door vervanging van de knooppunten van vooraf gespecificeerde elementen van de genoemde document gegevenselementen door een of meer 5 knooppunten omvattende standaard XML volgende elementen die standaard tags en attributen hebben; - een vertolker (renderer) voor het afbeelden van de documentgegevens met de gereconstrueerde document object model (DOM) representatie.
26. Systeem volgens conclusie 25, waarin de reconstructor en/of vertolker aangepast zijn teneinde de werkwij zestappen volgens een van de conclusies 1-20 uit te voeren.
27. Inrichting omvattende een computerprogramma 15 product en tenminste een processor, het computerprogramma product omvattende instructies voor het door de processor laten uitvoeren van de werkwij zestappen van een van de conclusies 1-20.
28. Gegevensdrager die een daarop geregistreerd 20 computerprogramma product omvat bij de uitvoering waarvan door een processor de werkwijze volgens een van de conclusies 1-20 wordt uitgevoerd.
29. Computerprogramma voor het uitvoeren, wanneer dit op een computer wordt gedraaid, van de stappen van een van de 25 werkwijzeconclusies 1-20. 1 0251 25'.
NL1025125A 2003-11-07 2003-12-24 Werkwijze, inrichting en systeem voor het uitbreiden van een mark-up taal. NL1025125C2 (nl)

Priority Applications (4)

Application Number Priority Date Filing Date Title
NL1025125A NL1025125C2 (nl) 2003-11-07 2003-12-24 Werkwijze, inrichting en systeem voor het uitbreiden van een mark-up taal.
US10/578,458 US20070266050A1 (en) 2003-11-07 2004-11-08 Method, Device and System for Extending a Mark-Up Language
EP04800177A EP1680753A2 (en) 2003-11-07 2004-11-08 Method, device and system for extending a mark-up language
PCT/NL2004/000785 WO2005045702A2 (en) 2003-11-07 2004-11-08 Method, device and system for extending a mark-up language

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
NL1024745 2003-11-07
NL1024745 2003-11-07
NL1025125A NL1025125C2 (nl) 2003-11-07 2003-12-24 Werkwijze, inrichting en systeem voor het uitbreiden van een mark-up taal.
NL1025125 2003-12-24

Publications (1)

Publication Number Publication Date
NL1025125C2 true NL1025125C2 (nl) 2005-05-10

Family

ID=34576067

Family Applications (1)

Application Number Title Priority Date Filing Date
NL1025125A NL1025125C2 (nl) 2003-11-07 2003-12-24 Werkwijze, inrichting en systeem voor het uitbreiden van een mark-up taal.

Country Status (4)

Country Link
US (1) US20070266050A1 (nl)
EP (1) EP1680753A2 (nl)
NL (1) NL1025125C2 (nl)
WO (1) WO2005045702A2 (nl)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110874251A (zh) * 2018-08-29 2020-03-10 北京京东尚科信息技术有限公司 一种实现图片木桶布局的方法和装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0411560D0 (en) 2004-05-24 2004-06-23 Protx Group Ltd A method of encrypting and transferring data between a sender and a receiver using a network
US8635548B2 (en) * 2005-03-18 2014-01-21 International Business Machines Corporation Configuring a page for drag and drop arrangement of content artifacts in a page development tool
US9497172B2 (en) 2005-05-23 2016-11-15 Litera Corp. Method of encrypting and transferring data between a sender and a receiver using a network
US7770106B2 (en) * 2006-03-17 2010-08-03 Microsoft Corporation Dynamic generation of compliant style sheets from non-compliant style sheets
US8868499B2 (en) * 2007-08-15 2014-10-21 Salesforce.Com, Inc. Method and system for pushing data to subscribers in an on-demand service
US20090288019A1 (en) * 2008-05-15 2009-11-19 Microsoft Corporation Dynamic image map and graphics for rendering mobile web application interfaces
CH699770A1 (de) * 2008-10-16 2010-04-30 Unblu Inc Erfassung des visuellen Inhalts von Browserfenstern.
US8982129B1 (en) * 2010-04-23 2015-03-17 Crimson Corporation Mapping graph data to a tree structure on a computing device
US10540416B2 (en) 2011-06-23 2020-01-21 Microsoft Technology Licensing, Llc Linking source code to running element
US10534830B2 (en) 2011-06-23 2020-01-14 Microsoft Technology Licensing, Llc Dynamically updating a running page
US8996569B2 (en) 2012-04-18 2015-03-31 Salesforce.Com, Inc. Mechanism for facilitating evaluation of data types for dynamic lightweight objects in an on-demand services environment
US9342323B2 (en) 2012-08-09 2016-05-17 Google Inc. Browser-level background page for providing multiple views
CN102955854B (zh) * 2012-11-06 2015-11-25 搜游网络科技(北京)有限公司 一种基于html5协议的网页展现方法及装置
WO2014075509A1 (zh) * 2012-11-13 2014-05-22 北京奇虎科技有限公司 浏览器进行页面元素处理的方法及装置
US20140281854A1 (en) * 2013-03-14 2014-09-18 Comcast Cable Communications, Llc Hypermedia representation of an object model
CN108509395A (zh) * 2017-02-24 2018-09-07 北京国双科技有限公司 数据绑定方法及装置
CN110209985B (zh) * 2019-06-05 2023-04-07 上海德拓信息技术股份有限公司 一种更新dom树的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2359157A (en) * 1999-09-30 2001-08-15 Ibm Extensible Markup Language (XML) server pages having custom Document Object Model (DOM) tags
US20030018898A1 (en) * 2001-07-23 2003-01-23 Lection David B. Method, system, and computer-program product for providing selective access to certain child nodes of a document object model (DOM)
US20030126556A1 (en) * 2001-08-22 2003-07-03 Basuki Soetarman Approach for transforming XML document to and from data objects in an object oriented framework for content management applications

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480865B1 (en) * 1998-10-05 2002-11-12 International Business Machines Corporation Facility for adding dynamism to an extensible markup language
AU4501400A (en) * 1999-05-03 2000-11-17 Avolent, Inc. Technique for facilitating customer transactions over a computer network using customized information from a backend computing system
CA2301996A1 (en) * 2000-03-13 2001-09-13 Spicer Corporation Wireless attachment enabling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2359157A (en) * 1999-09-30 2001-08-15 Ibm Extensible Markup Language (XML) server pages having custom Document Object Model (DOM) tags
US20030018898A1 (en) * 2001-07-23 2003-01-23 Lection David B. Method, system, and computer-program product for providing selective access to certain child nodes of a document object model (DOM)
US20030126556A1 (en) * 2001-08-22 2003-07-03 Basuki Soetarman Approach for transforming XML document to and from data objects in an object oriented framework for content management applications

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HILDYARD A: "An XML document to JavaScript object converter", WEB TECHNIQUES MILLER FREEMAN USA, vol. 4, no. 1, 1 January 1999 (1999-01-01), pages 63 - 69, XP008036759, ISSN: 1086-556X *
SHEN JUN ET AL: "Java-based design and implementation of the XML parser", MINI-MICRO SYSTEMS MINI-MICRO SYST., CHINA CHINA, vol. 23, no. 12, 1 December 2002 (2002-12-01), pages 1449 - 1452, XP008036757, ISSN: 1000-1220 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110874251A (zh) * 2018-08-29 2020-03-10 北京京东尚科信息技术有限公司 一种实现图片木桶布局的方法和装置

Also Published As

Publication number Publication date
US20070266050A1 (en) 2007-11-15
WO2005045702A2 (en) 2005-05-19
WO2005045702A3 (en) 2005-07-14
EP1680753A2 (en) 2006-07-19

Similar Documents

Publication Publication Date Title
NL1025125C2 (nl) Werkwijze, inrichting en systeem voor het uitbreiden van een mark-up taal.
US10726195B2 (en) Filtered stylesheets
US7571391B2 (en) Selective rendering of user interface of computer program
US8671338B2 (en) Authoring, deploying and using interactive, data-driven two or more dimensional content
Preciado et al. Designing rich internet applications combining uwe and rux-method
US7836119B2 (en) Distributed execution model for cross-organizational declarative web applications
US20040090458A1 (en) Method and apparatus for previewing GUI design and providing screen-to-source association
US20090235230A1 (en) System and method for presentation of cross organizational applications
US20110004602A1 (en) Method for generating widget icon, apparatus for generating widget summary information file, and widget engine
US7765472B2 (en) Method and device for editing SVG type digital graphical documents in particular from a browser
JP5476867B2 (ja) マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法
Kay XSLT in the Browser
Pande JQuery 2 recipes: a problem-solution approach
Hayes et al. Getting StartED with Dojo
Welten et al. What's New?
Freeman Working with the Document Object
McLaughlin et al. In this chapter you’ll learn: To use JavaScript and the W3C Document Object Model
Charvát Web Visualization of Big Tree Structures
Freeman The Single-Page Model
Darie et al. Implementing AJAX Features
Gross Content Chunking Pattern
Allen et al. JavaScript
This Common Uses of JavaScript: Images and Windows
MacDonald Pages and Navigation
Start Implementing AJAX Features

Legal Events

Date Code Title Description
PD2B A search report has been drawn up
V1 Lapsed because of non-payment of the annual fee

Effective date: 20110701