FI123305B - Procedures and systems for customizing an application using XML configuration files - Google Patents

Procedures and systems for customizing an application using XML configuration files Download PDF

Info

Publication number
FI123305B
FI123305B FI20070092A FI20070092A FI123305B FI 123305 B FI123305 B FI 123305B FI 20070092 A FI20070092 A FI 20070092A FI 20070092 A FI20070092 A FI 20070092A FI 123305 B FI123305 B FI 123305B
Authority
FI
Finland
Prior art keywords
node
tree
configuration file
result
configuration
Prior art date
Application number
FI20070092A
Other languages
Finnish (fi)
Swedish (sv)
Other versions
FI20070092A (en
FI20070092A0 (en
Inventor
Pontus Lindman
Jarkko Enden
Original Assignee
Medixine Oy
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 Medixine Oy filed Critical Medixine Oy
Priority to FI20070092A priority Critical patent/FI123305B/en
Publication of FI20070092A0 publication Critical patent/FI20070092A0/en
Priority to PCT/FI2008/000019 priority patent/WO2008092989A1/en
Publication of FI20070092A publication Critical patent/FI20070092A/en
Application granted granted Critical
Publication of FI123305B publication Critical patent/FI123305B/en

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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

MENETELMÄ JA JÄRJESTELMÄ SOVELLUKSEN KUSTOMOIMISEKSI KÄYTTÄMÄLLÄ XML-KONFIGUROINTITIEDOSTOJAMETHOD AND SYSTEM FOR DELETING THE APPLICATION BY USING XML CONFIGURATION FILES

KEKSINNÖN TEKNINEN ALATECHNICAL FIELD OF THE INVENTION

5 Keksinnön kohteena on menetelmä ja järjestelmä sovelluksen kustomoimiseksi käyttämällä XML-konfigurointitiedostoja. Erityisesti keksinnön kohteena on menetelmä ja järjestelmä XML-konfigurointitiedostojen yhdistämiseksi.The invention relates to a method and a system for customizing an application using XML configuration files. More particularly, the invention relates to a method and system for combining XML configuration files.

KEKSINNÖN TAUSTAABACKGROUND OF THE INVENTION

Ohjelmistosovelluksia, kuten web-sovelluksia, kustomoidaan usein niiden asen-10 nuksen jälkeen suurillakin muutoksilla. Muutokset on tavallisesti tehtävä alkuperäisiin konfigurointitiedostoihin, mikä vaikeuttaa muutosten seurantaa.Software applications, such as web applications, are often customized with major changes after they are installed. Changes usually need to be made to the original configuration files, which makes it difficult to track changes.

XML on tämän hetken standardiformaatti web-sovellusten konfigurointiin. Periaatteessa kaikki nykyaikaiset web-sovellukset sisältävät yhden tai useamman XML-konfigurointitiedoston. XML:ää käytetään myös yhä useammin liiketoiminta- ja so-15 velluslogiikan määrittelyyn. Useimmissa sovelluksissa näihin dokumentteihin tehtyjä muutoksia ei kapseloida kunnolla, mikä johtaa heikkoon muutosten hallintaan ja adhoc-tyyppiseen kustomointiin.XML is currently the standard format for configuring web applications. In principle, all modern web applications contain one or more XML configuration files. XML is also increasingly used to define business and SO-15 application logic. In most applications, changes made to these documents are not properly encapsulated, leading to poor change management and adhoc-type customization.

Tekniikan tasosta tunnetaan muutamia, pääasiassa geneerisiä algoritmeja XML-konfigurointitiedostojen yhdistämiseen. Nämä perustuvat tyypillisesti DTD-standar-20 diin (Document Type Definition), ja yhdistäminen suoritetaan, mikäli yhdistettävät tiedostot ovat saman mutta mielivaltaisen DTD:n laillisia ilmentymiä.There are some, mainly generic, algorithms known in the art for combining XML configuration files. These are typically based on DTD (Document Type Definition) standard 20, and merging is performed if the files to be merged are legal instances of the same but arbitrary DTD.

C\JC \ J

£ Tekniikan tason menetelmiin liittyy kuitenkin eräitä ongelmia, esimerkiksi käytettä- ^ essä geneerisiä algoritmeja, nimittäin ongelmia, joita syntyy konfliktitilanteissa, V joissa sama elementti esiintyy molemmissa (tai vähintään kahdessa) yhdistettävis- o 25 tä tiedostoista, ja erityisesti mikäli elementit sijaitsevat siten, että elementti ensim- | mäisessä tiedostossa on hieman eri paikassa kuin elementti vähintään yhdessä ^ toisessa tiedostossa. Tekniikan tasossa tällaisessa konfliktitilanteessa ei tiedetä, o mitä näistä vähintään kahdesta tiedostosta tulisi käyttää. Tekniikan tason mukai- o seen yhdistämiseen liittyy myös muita ongelmia, kuten muutosten seuranta, oHowever, there are some problems with the prior art methods, for example, when using generic algorithms, namely problems arising in conflict situations, where the same element occurs in both (or at least two) of the files to be merged, and especially if the elements are located such that element first- | This file has a slightly different location than the element in at least one other ^ file. The state of the art in such a conflict does not know which of these at least two files should be used. Prior art combining also has other problems, such as tracking changes, o

CVJCVJ

22

KEKSINNÖN YHTEENVETOSUMMARY OF THE INVENTION

Keksinnön tavoitteena on ratkaista tekniikan tasoon liittyvät ongelmat. Erityisesti keksinnön tavoitteena on toteuttaa menetelmä ja järjestelmä ohjelmistosovelluksen kustomoimiseksi automaattisesti säilyttäen alkuperäiset tai muutoskonfiguroin-5 titiedostot muuttumattomina. Lisäksi keksinnön tavoitteena on vähentää muutosten tallentamisessa tarvittavan dokumentaation määrää ja mahdollistaa versiopäivityk-set kumoamatta sovellukselle tehtyjä kustomointeja.The object of the invention is to solve the problems related to the prior art. In particular, it is an object of the invention to provide a method and system for automatically customizing a software application while keeping the original or change configuration files unchanged. It is a further object of the invention to reduce the amount of documentation required to save changes and enable version updates without canceling customizations made to the application.

Keksinnön tavoitteet voidaan saavuttaa itsenäisten patenttivaatimusten tunnus-merkkiosassa esitettyjen ominaisuuksien avulla.The objects of the invention can be achieved by the features set forth in the characterizing part of the independent claims.

10 Keksintö liittyy patenttivaatimuksen 1 mukaiseen menetelmään sovelluksen kustomoimiseksi.The invention relates to a method for customizing an application according to claim 1.

Keksintö liittyy myös patenttivaatimuksen 6 mukaiseen järjestelmään sovelluksen kustomoimiseksi.The invention also relates to a system for customizing an application according to claim 6.

Lisäksi keksintö liittyy patenttivaatimuksen 11 mukaiseen tietokoneohjelmatuottee-15 seen sovelluksen kustomoimiseksi.The invention further relates to a computer program product according to claim 11 for customizing the application.

Tässä dokumentissa käytetään seuraavia nimityksiä ja lyhenteitä: - "Sovellus": voi olla mikä tahansa ohjelmistosovellus, kuten web-sovel- lus, joka käyttää yhtä tai useampaa XML-standardin mukaista tiedostoa ja/tai sisältää sellaisen.The following terms and abbreviations are used throughout this document: - "Application": Any software application, such as a web application, that uses and / or contains one or more XML-compliant files.

20 - "Attribuutti": elementin osa, joka antaa lisätietoa kyseisestä elementistä.20 - "Attribute": The part of an element that provides additional information about that element.

Lisätietoa antava XML-tagin määre. Esimerkiksi tagissa <slide title="My Slide"> "title" on attribuutti, ja "My Slide" on ^ sen arvo.An XML tag attribute that provides more information. For example, the tag <slide title = "My Slide"> "title" has an attribute, and "My Slide" has ^ its value.

° - "Lapsisolmu": elementin sisältämä solmu, joka on suoraan sen alapuolella ° 25 puuhierarkiassa.° - "Child node": The node contained in the element immediately below it in the ° 25 tree hierarchy.

i g - "Muutoskonfigurointitiedosto": eli kustomointitiedosto on tiedosto, jonka kans- x sa alkuperäinen tiedosto yhdistetään. Kustomointitiedosto voi sisältää esimerkiksi henkilökohtaisia ja kustomoituja tie-§ toja.i g - "Change Configuration File": that is, the customization file is the file with which the original file is merged. The customization file may contain, for example, personal and customized information.

° 30 - "Elementti": Tagien rajaama XML-datan yksikkö. XML-elementti voi sul-° 30 - "Element": The XML data unit delimited by the tags. The XML element can close

OO

^ kea sisäänsä muita elementtejä, esimerkiksi "<slideshowxslide>..</slidexslide>..</slide></slideshow>", joissa <slideshow>-elementti sisältää kaksi <slide>-element-tiä.^ include other elements such as "<slideshowxslide> .. </slidexslide> .. </slide> </slideshow>" where the <slideshow> element contains two <slide> elements.

3 - "ID/Tunniste": yksilöi elementin. Tunnisteen on oltava uniikki sellaisten sa maa tyyppiä olevien elementtien kesken, joilla on sama äi-tisolmu.3 - "ID": identifies the element. The tag must be unique among elements of the same type that share the same parent node.

- "Solmu": voi olla elementtisolmu, attribuuttisolmu tai tekstisolmu. Sol- 5 mut on edullisesti järjestetty puuhierarkiaan, ja solmuilla on myös edullisesti tyyppi ja tunniste (ID), joka yksilöi solmun.- "Node": can be an element node, an attribute node, or a text node. The nodes are preferably arranged in a tree hierarchy, and the nodes also preferably have a type and an identifier (ID) that identifies the node.

- "Alkuperäinen konfigurointitiedosto" eli alkuperäinen tiedosto sisältää alkupe räiset tiedot, joiden tulisi pysyä muuttumattomina. Alkuperäisen tiedoston data yhdistetään eli kustomoidaan kustomoin-10 titiedoston tietojen kanssa, ja lopputulos tallennetaan tulos tiedostoon.- "Original configuration file", ie the original file, contains the original information which should remain unchanged. The data in the original file is merged, that is, customized with the data in the custom 10 file, and the result is saved in the result file.

- "Äitisolmu": Solmun äitisolmu on elementti, joka sisältää ko. solmun. Ele mentti on kaikkien lapsisolmujensa äitisolmu. Solmulla on enintään yksi äitisolmu.- "Mother Node": The parent node of a node is the element that contains the given node. node. The gesture is the mother node of all its child nodes. The node has at most one parent node.

15 - "Tuloskonfigurointitiedosto tai -puu" eli tulostiedosto/-puu sisältää kustomoin- titiedoston tietojen kanssa kustomoidut alkuperäiset tiedot. Tulostiedosto tai -puu syntyy alkuperäisen konfigurointitie-doston ja muutoskonfigurointitiedoston tietojen yhdistämisen tuloksena, ja edullisesti se lähetetään haihtuvaan muistiin, 20 kuten RAM-muistiin.15 - "Result Configuration File or Tree", i.e. the result file / tree, contains the original information that is customized with the information in the customization file. The result file or tree is created as a result of combining the data of the original configuration file and the change configuration file, and is preferably sent to volatile memory, such as RAM.

- "XML": Extensible Markup Language.- XML: Extensible Markup Language.

Keksinnön erään suoritusmuodon mukaisesti ohjelmistosovellus kustomoidaan muutoskonfigurointitiedostolla, joka sisältää vähintään yhden solmun. Solmut on edullisesti järjestetty puuhierarkiaan tiedostossa, ja solmuilla on myös edullisesti 25 tyyppi ja tunniste (ID), joka yksilöi solmun. Sovellukseen kuuluu edullisesti alkuperä räinen tiedosto, joka sisältää solmuja puuhierarkiassa ja alkuperäiset tiedot. Erään o suoritusmuodon mukaan, kun alkuperäiset tiedot kustomoidaan, alkuperäinen tie- ö dosto asetetaan ensin tulostiedostoksi/-puuksi, ja mainitun kustomointitiedoston ^ kutakin solmua verrataan tuloskonfigurointipuun, joka sisältää alkuperäisen tiedos- ° 30 ton datan ja datarakenteen, vastaaviin solmuihin.According to one embodiment of the invention, the software application is customized with a change configuration file containing at least one node. The nodes are preferably arranged in a tree hierarchy in a file, and the nodes also preferably have a type and an identifier (ID) that identifies the node. Preferably, the application includes an original file containing nodes in the tree hierarchy and the original data. According to one embodiment, when the original data is customized, the original file is first set to a result file / tree, and each node of said customization file is compared to the corresponding nodes in the result configuration tree containing the original file data and data structure.

XX

CCCC

CLCL

^ Esillä oleva keksintö on hyvin luotettava myös vertailuprosessissa, jossa mainitun o tulostiedoston elementtisolmu sisältää kaksi tai useampia saman tyypin lapsiele- o menttejä. Keksinnön erään suoritusmuodon mukaan tulostiedoston mainitut ele- o ^ mentit tarkistetaan selvittäen, onko vähintään yksi mainituista tulostiedoston ele- 35 menteistä samaa tyyppiä ja sisältääkö se saman tunnisteen kuin mainitun tulostiedoston kanssa yhdistettävän kustomointitiedoston vastaava elementti. Mikäli tulos- 4 tiedoston vähintään yhden elementin tyyppi ja/tai tunniste eivät vastaa kustomoin-titiedoston mainittua elementtiä, mainitun kustomointitiedoston mainittu elementti lisätään mainittuun tulostiedostoon.The present invention is also very reliable in the comparison process, wherein the element node of said output file contains two or more child elements of the same type. According to one embodiment of the invention, said elements of the output file are checked to determine whether at least one of said output file elements is of the same type and contains the same identifier as the corresponding element of the customization file to be associated with said output file. If the type and / or identifier of at least one element of the result file do not match said element of the customization file, said element of said customization file is added to said result file.

Jos kuitenkin tulostiedoston jonkin tai joidenkin solmujen tyyppi ja tunniste vastaa-5 vat kustomointitiedoston mainittua solmua, mainitun kustomointitiedoston mainittu solmu yhdistetään mainitun tulossolmun kanssa, ellei mainitun kustomointitiedoston mainittu solmu sisällä tuhoamiskäskyä, jolloin vastaava solmu poistetaan tu-lossolmusta.However, if the type and identifier of one or more nodes in the result file corresponds to said node of the customization file, said node of said customization file is associated with said result node unless said node of said customization file contains a delete command, wherein the corresponding node is removed from the result node.

Keksinnön erään toisen suoritusmuodon mukaan, kun alkuperäinen solmu asete-10 taan tulossolmuksi, kaikki attribuutit kopioidaan muutoskonfigurointitiedostosta tai -solmusta. Mikäli jokin attribuutti on jo olemassa tulostiedostossa tai -solmussa, sen arvo ylikirjoitetaan, ja mikäli jotakin attribuuttia ei ole olemassa tulostiedostossa tai -solmussa, attribuutti luodaan tulostiedostoon tai -solmuun.According to another embodiment of the invention, when the original node is set to a result node, all attributes are copied from the change configuration file or node. If an attribute already exists in the result file or node, its value is overwritten, and if an attribute does not exist in the result file or node, the attribute is created in the result file or node.

Erään toisen suoritusmuodon mukaisesti lapsisolmut voidaan käsitellä esimerkiksi 15 attribuuttien jälkeen. Kustomointisolmun kaikki lapset voidaan silmukoida. Silmu-kointi suoritetaan edullisesti peräkkäin kullekin ao. solmulle. Mikäli lapsisolmu sisältää tekstisolmun (sisältäen vain tekstiä), mainitun tulossolmun alkuperäinen teksti korvataan muutoskonfigurointisolmun tekstillä.According to another embodiment, the child nodes may be processed after, for example, 15 attributes. All children in the customization node can be looped. The looping is preferably performed sequentially for each of the nodes in question. If the child node contains a text node (containing only text), the original text of said result node is replaced by the text of the change configuration node.

Erään toisen suoritusmuodon mukaisesti, jos käsiteltävänä olevaa lapsisolmua ei 20 ole olemassa tuloksessa, kustomointilapsisolmu ja kaikki sen jälkeläiset edullisesti lisätään tulossolmuun, paitsi jos lapsi sisältää tuhoamiskäskyn (XML-prosessointi-käsky <?delete?>). Mikäli lapsi on jo olemassa tuloksessa, alkuperäinen ja kustomointilapsisolmu voidaan yhdistää rekursiivisesti käyttäen samaa yhdistämisalgo-^ ritmia, paitsi jos lapsi sisältää tuhoamiskäskyn. Kun kustomointilapsesta löydetään o 25 tuhoamiskäsky, alkuperäinen lapsi poistetaan tuloksesta.According to another embodiment, if the child child node being processed does not exist in the result, the custom child node and all its descendants are preferably added to the result node, unless the child contains a delete command (XML processing command <? Delete?>). If the child already exists in the result, the original and the custom child node can be recursively combined using the same merge algorithm, unless the child contains a delete command. When a customization child is found to have 25 destruction commands, the original child is deleted from the result.

i o V Yhdistämiskone perustuu edullisesti geneeriseen XML/DOM-puu-yhdistämisalgo- o ritmiin. Yhdistämiskonetta voidaan käyttää moniin erilaisiin XML-yhdistämistarpei- | siin, mutta se on äärimmäisen tehokas yhdistettäessä useita XML-konfigurointi- ^ tiedostoja yhdeksi XML-tiedostoksi tai DOM-puuksi. Useiden tiedostojen yhdistä- o 30 minen suoritetaan edullisesti peräkkäin. Algoritmia voidaan myös käyttää XML- o mallinnuskoneiden kanssa sovelluksissa, jotka perustuvat adaptiiviseen objekti- o ^ mallinnukseen (jota kutsutaan myös deklaratiiviseksi ohjelmoinniksi). Näiden so vellusten XML-tiedostot ovat erittäin monimutkaisia, koska perinteisten konfiguraa-tioiden lisäksi ne määrittelevät useimpia liiketoiminta- ja sovelluslogiikoita.Preferably, the merge machine is based on a generic XML / DOM tree merge algorithm. The merge machine can be used for many different XML merge needs but it is extremely effective in combining multiple XML configuration files into a single XML file or DOM tree. The merging of several files is preferably performed sequentially. The algorithm can also be used with XML modeling machines in applications based on adaptive object modeling (also called declarative programming). The XML files for these applications are very complex because, in addition to traditional configurations, they define most business and application logics.

55

Yhdistämiskoneen avulla on mahdollista eristää kaikki alkuperäiseen sovellukseen tehdyt muutokset hienojakoisella tavalla. XML-elementtejä ja attribuutteja voidaan lisätä, muuttaa ja poistaa tekemättä muutoksia alkuperäisiin dokumentteihin. Kus-tomoitujen dokumenttien tiedot kumoavat aina alkuperäisten dokumenttien tiedot. 5 Tällä on useita etuja. Kaikki muutokset kapseloidaan erillisiin kustomointitiedostoi-hin, jotka sisältävät vain ne elementit ja attribuutit, joita pitää muuttaa. Tällä tavoin muutosten tunnistaminen ja hallinta on helppoa. Tavallaan kustomoinneista tulee itsedokumentoivia, mikä vähentää muutosten tallentamiseen tarvittavan dokumentoinnin määrää. Alkuperäisten kohteiden kapselointia ja kumoamista voidaan ver-10 rata olioperustaisten ohjelmointikielten luokkaperiytyvyyteen.With the merge machine, it is possible to isolate all changes made to the original application in a fine-grained way. XML elements and attributes can be added, modified and deleted without making any changes to the original documents. The information in a document that has been revoked always overrides the information in the original document. 5 This has several advantages. All changes are encapsulated in separate customization files that contain only the elements and attributes that need to be changed. This way, it is easy to identify and manage changes. In a way, customizations become self-documenting, which reduces the amount of documentation needed to save changes. Encapsulation and undoing of the original objects can be compared to the class inheritance of object-based programming languages.

Vielä merkittävämpi etu on mahdollisuus suorittaa versiopäivityksiä sovellukseen tehtyjä kustomointeja kumoamatta. Jos alkuperäisten dokumenttien rajapinnat ja perusrakenteet pysyvät samoina läpi eri versioiden, kustomoituja tiedostoja ei tarvitse muuttaa päivityksen yhteydessä. Jos muutokset tehtäisiin alkuperäisiin tie-15 dostoihin, kaikki muutokset menetettäisiin versiopäivityksiä tai korjauspaketteja asennettaessa. Yhdistämiskone tarjoaa mahdollisuuden eristää muutokset korvaamatta alkuperäisiä tiedostoja kokonaan.An even more significant advantage is the ability to perform version upgrades without undoing customizations made to the application. If the interfaces and infrastructures of the original documents remain the same throughout the versions, there is no need to change the custom files during the upgrade. If the changes were made to the original files, any changes would be lost when installing the upgrade or the patches. The merge machine offers the ability to isolate changes without completely replacing the original files.

Keksinnön erään suoritusmuodon mukaisesti alkuperäisten XML-tiedostojen on noudatettava näitä kahta sääntöä tehokkaan yhdistämisen mahdollistamiseksi: 20 1) kaikkien tiedostojen on oltava oikeita XML-tiedostoja, joita voidaan lukea millä tahansa standardinmukaisella XML-jäsentimellä, ja 2) mikäli elementillä on useita saman tyypin lapsielementtejä, nämä elementit on yksilöitävä tunnisteella. Esimerkiksi, jos A-tyypin elementillä on kaksi B-tyypin lapsielementtiä, B-tyypin elementeillä on oltava tunniste, jonka 25 avulla on mahdollista viitata niihin kustoimointidokumenteissa. TunnisteenAccording to one embodiment of the invention, the original XML files must adhere to these two rules for effective merging: 1) all files must be valid XML files that can be read by any standard XML parser, and 2) if the element has multiple child elements of the same type, these elements must be identified by a tag. For example, if a Type A element has two child type B elements, the Type B element must have an identifier that can be used to refer to them in the costume documentation. tag

CMCM

g on oltava uniikki sellaisten B-tyyppiä olevien elementtien kesken, jotka ^ ovat saman elementin lapsia, o g Keksinnön erään suoritusmuodon mukaisesti yhdistäminen voidaan suorittaa mille x tahansa XML-tiedostoille ta DOM-puusolmuille. Ainoa rajoitus on, että yhdistettä- 30 villä dokumenteilla tai solmuilla on oltava sama juurielementti. Yhdistäminen aloite- g taan tyypillisesti yhdistämällä juurielementit.g must be unique among elements of type B which are children of the same element. o g According to one embodiment of the invention, the merge can be performed on any x XML files or DOM tree nodes. The only limitation is that the documents or nodes to be combined must have the same root element. The merge is typically initiated by combining the root elements.

o § Lisäksi on huomattava, että keksinnön eräässä suoritusmuodossa yhdistämiskoneIn addition, it should be noted that, in one embodiment of the invention, the joining machine

C\JC \ J

tukee myös XML-tiedostojen inkluusiota.also supports XML file inclusion.

66

PIIRROSTEN LYHYT KUVAUSBRIEF DESCRIPTION OF THE DRAWINGS

Seuraavassa keksintöä selostetaan yksityiskohtaisemmin eräiden esimerkinomaisten suoritusmuotojen avulla ja viitaten oheisiin piirustuksiin, joissaThe invention will now be described in more detail by way of some exemplary embodiments and with reference to the accompanying drawings, in which:

Kuvio 1 esittää lohkokaavion muodossa erästä esimerkkimenetelmää ohjel-5 mistosovelluksen kustomoimiseksi keksinnön erään edullisen suori tusmuodon mukaisesti, kuviot 2a-c esittävät esimerkkinä alkuperäistä konfigurointitiedostoa, muutoskon-figurointitiedostoa ja saatua tuloskonfigurointipuuta keksinnön erään edullisen suoritusmuodon mukaisesti, 10 kuviot 3a-c esittävät esimerkkinä alkuperäistä konfigurointitiedostoa, sisällytettävää XML-tiedostoa ja saatua tulostiedostoa keksinnön erään edullisen suoritusmuodon mukaisesti, kuvio 4 esittää erästä esimerkkijärjestelmää ohjelmistosovelluksen kustomoimiseksi keksinnön erään edullisen suoritusmuodon mukaisesti, ja 15 kuvio 5 esittää esimerkkinä erästä tietokoneohjelmatuotetta sovelluksen kustomoimiseksi keksinnön erään edullisen suoritusmuodon mukaisesti.Fig. 1 is a block diagram illustrating an exemplary method of customizing a software application according to a preferred embodiment of the invention, Figs. 2a-c illustrating an an XML file to be included and a result file according to a preferred embodiment of the invention, Figure 4 illustrates an exemplary system for customizing a software application according to a preferred embodiment of the invention, and Figure 5 illustrates an example computer software product according to a preferred embodiment of the invention.

YKSITYISKOHTAINEN SELITYSDETAILED EXPLANATION

Kuvio 1 esittää lohkokaavion muodossa erästä esimerkkimenetelmää 100 ohjelmistosovelluksen kustomoimiseksi 102 keksinnön erään edullisen suoritusmuodon 20 mukaisesti. Sovellukseen kuuluu tai siihen liittyy alkuperäinen konfigurointitiedosto 106, joka sisältää solmuja edullisesti puuhierarkiassa. Sovellus kustomoidaan eli yhdistetään vähintään yhden muutoskonfigurointitiedoston 104 avulla, joka myös sisältää vähintään yhden solmun.Figure 1 is a block diagram illustrating an exemplary method 100 for customizing a software application 102 according to a preferred embodiment 20 of the invention. The application includes or is associated with the original configuration file 106, which preferably contains nodes in the tree hierarchy. The application is customized, i.e. merged, by means of at least one change configuration file 104, which also contains at least one node.

CMCM

5 Ensimmäisessä vaiheessa 108 tarkistetaan alkuperäisistä ja muutoskonfigurointi- ^ 25 tiedostoista tyyppien (tai alkioiden nimien) ja mahdollisesti myös tunnisteiden avul- o v la, että ne ovat yhteensopivia. Ellei niin ole, yhdistäminen pysähtyy virheeseen o vaiheessa 110, mutta jos ne ovat, yhdistäminen jatkuu vaiheessa 112, jossa alku- | peräisestä konfigurointitiedostosta tehdään tuloskonfigurointipuu. Toisin sanoen ^ kopioidaan alkuperäinen konfigurointitiedosto ja nimetään kopio tuloskonfigurointi- o 30 puuksi niin, että alkuperäinen konfigurointitiedosto voidaan säilyttää muuttamatto- o mana. Tuloskonfigurointipuuta hallitaan edullisesti haihtuvassa muistissa, eikä mi- o ™ tään erityistä tiedostoa tallenneta esimerkiksi levylle. Erään suoritusmuodon mu kaisesti tiedosto voidaan kuitenkin myös tallentaa, mutta se ei ole pakollista.In the first step 108, the original and change configuration files are checked for their compatibility with the types (or item names) and possibly the tags. If not, the merge stops at error o in step 110, but if it does, the merge continues in step 112, where the initial | the resulting configuration file is converted into a result configuration tree. In other words, the original configuration file is copied and the copy is named as the result configuration file 30 so that the original configuration file can be retained unchanged. The result configuration tree is preferably managed in volatile memory, and no special file is stored, for example, on disk. However, according to one embodiment, the file can also be saved but is not required.

77

Sen jälkeen vaiheessa 114 kaikki attribuutit voidaan kopioida muutoskonfigurointi-tiedostosta tuloskonfigurointipuuhun, minkä jälkeen voidaan määrittää muutoskon-figurointitiedoston ensimmäinen attribuutti. Vaiheessa 116 määritellään, onko attribuutteja jo olemassa juuri luodun tuloskonfigurointipuun vastaavassa solmussa. 5 Jos attribuutti on uusi (ei ole olemassa), niin se luodaan tuloskonfigurointipuuhun vaiheessa 118. Jos attribuutti ei ole uusi (on olemassa), niin se korvataan tulos-konfigurointipuussa vaiheessa 120.Then, in step 114, all the attributes can be copied from the change configuration file to the result configuration tree, after which the first attribute of the change configuration file can be specified. Step 116 determines whether the attributes already exist in the corresponding node of the newly created result configuration tree. 5 If the attribute is new (does not exist), it is created in the result configuration tree in step 118. If the attribute is not new (exists), it is replaced in the result configuration tree in step 120.

Seuraavaksi määritetään vaiheessa 122, oliko kyseessä viimeinen attribuutti. Jos kyseessä ei ollut viimeinen attribuutti, otetaan käsittelyyn muutoskonfigurointitie-10 doston seuraava attribuutti vaiheessa 124 ja toistetaan vaiheet 116-120. Jos attribuutti oli viimeinen, niin otetaan käsittelyyn muutoskonfigurointitiedoston ensimmäinen lapsi vaiheessa 128, jossa ensin määritetään vaiheessa 130, onko kyseessä tekstisolmu. Jos on, kaikki teksti tuloskonfigurointipuun vastaavassa solmussa päällekirjoitetaan vaiheessa 132, minkä jälkeen määritetään vaiheessa 15 134, oliko kyseessä viimeinen lapsi. Jos kyseessä ei kuitenkaan ole tekstisolmu, tarkistetaan vaiheessa 136, onko sillä tunniste. Ellei ole, niin tarkistetaan vaiheessa 138, onko tuloskonfigurointipuussa olemassa yhtään solmua, jolla on sama tyyppi. Ellei ole, niin tarkistetaan vaiheessa 140, sisältääkö se tuhoamiskäskyn. Jos kyllä, niin prosessi jatkuu vaiheesta 134. Jos se ei sisällä tuhoamisfunktiota, 20 tekstisolmu lisätään tuloskonfigurointipuuhun vaiheessa 142.Next, in step 122, it is determined whether this was the last attribute. If this was not the last attribute, the next attribute of the change configuration path-10 file is processed in step 124 and steps 116-120 are repeated. If the attribute was the last, the first child of the change configuration file is processed in step 128, which first determines in step 130 whether it is a text node. If so, all the text in the corresponding node in the result configuration tree is overwritten in step 132, then determined in step 15,134 whether it was the last child. However, if it is not a text node, check in step 136 whether it has an identifier. If not, it is checked in step 138 whether there are any nodes of the same type in the result configuration tree. If not, check in step 140 whether it contains a destruction command. If yes, the process continues from step 134. If it does not include a destroy function, the text node 20 is added to the result configuration tree in step 142.

Jos kyseessä ei kuitenkaan ole tekstisolmu, eikä sillä ole tunnistetta, mutta yksikin saman tyypin solmu on olemassa tuloskonfigurointipuussa (vaihe 138), niin seuraava vaihe on vaihe 144.However, if it is not a text node and has no identifier, but one node of the same type exists in the result configuration tree (step 138), then the next step is step 144.

Jos kyseessä ei ole tekstisolmu (vaihe 130), mutta sillä on tunniste (vaihe 136), ^ 25 niin tarkistetaan vaiheessa 146, onko myös tuloskonfigurointipuussa olemassa ° saman tyypin solmu. Ellei, niin solmu lisätään tuloskonfigurointipuuhun vaiheessa ° 142 ja menetelmä jatkuu vaiheesta 134. Jos kuitenkin myös tuloskonfigurointi- g puussa on olemassa saman tyypin solmu, niin tarkistetaan vaiheessa 144, sisäl- x tääkö muutoskonfigurointitiedoston solmu tuhoamiskäskyjä.If it is not a text node (step 130) but has an identifier (step 136), ^ 25 then it is checked in step 146 whether there is a node of the same type in the result configuration tree. If not, then the node is added to the result configuration tree in step 142 and the method continues from step 134. However, if there is a node of the same type in the result configuration tree, then it is checked in step 144 whether the node in the change configuration file contains destruction commands.

CLCL

g 30 Vaiheen 144 jälkeen, mikäli muutoskonfigurointitiedoston solmu sisältää tuhoa-o miskäskyjä, vastaava solmu poistetaan tuloskonfigurointipuusta vaiheessa 148 ja § prosessi jatkuu vaiheesta 134. Mikäli muutoskonfigurointitiedoston solmu ei kui- c\j tenkaan sisällä tuhoamiskäskyjä, se yhdistetään alkuperäisen konfigurointitiedos-ton vastaavan lapsen kanssa vaiheessa 150 ja prosessi jatkuu vaiheesta 134.g 30 After step 144, if the node in the change configuration file contains a delete command, the corresponding node is removed from the result configuration tree in step 148 and the process continues from step 134. If the node in the change configuration file contains no delete commands, it is merged with the original configuration file. step 150 and the process continues from step 134.

88

Vaiheessa 134 tarkistetaan, oliko kyseessä viimeinen lapsi. Ellei, niin seuraava lapsi otetaan käsittelyyn vaiheessa 152 ja menetelmän vaiheet 130-150 toistetaan myös uuden lapsen osalta. Jos lapsi vaiheessa 132 oli kuitenkin viimeinen, niin tu-loskonfigurointipuu palautetaan vaiheessa 154.Step 134 checks to see if it was the last child. If not, the next child is admitted at step 152 and method steps 130-150 are repeated for the new child. However, if the child in step 132 was the last, then the result configuration tree is returned in step 154.

5 Kuvio 2a esittää esimerkkinä alkuperäistä konfigurointitiedostoa 202, kuvio 2b esittää esimerkkinä muutoskonfigurointitiedostoa 204 ja kuvio 2c esittää esimerkkinä saatua tuloskonfigurointipuuta 206 keksinnön erään suoritusmuodon mukaisesti, jolloin kukin muutoskonfigurointitiedoston solmuista 222, 224, 225, 226 yhdistetään alkuperäisen konfigurointitiedoston vastaavien solmujen 220, 221, 222, 223, 10 224, 225 kanssa kuvion 1 menetelmävaiheiden mukaisesti.Figure 2a illustrates an initial configuration file 202, Figure 2b exemplifies a change configuration file 204, and Figure 2c illustrates an exemplary result configuration tree 206 according to an embodiment of the invention, wherein each of the nodes 222, 224, 225, 226 223, 10 224, 225 according to the process steps of Figure 1.

Kuvioissa 2a-c voidaan nähdä, että kuvauksen koko on muuttunut 128:sta 64:ään ja elementti "AccessRule" on lisätty ja elementti "Validate" on kokonaan poistettu (vrt. solmut 220-224 ja 226 tuloskonfigurointipuussa 206).In Figures 2a-c, it can be seen that the mapping size has changed from 128 to 64 and the "AccessRule" element has been added and the "Validate" element has been completely removed (cf. nodes 220-224 and 226 in the result configuration tree 206).

Kuviot 3a-c esittävät esimerkkinä alkuperäistä konfigurointitiedostoa 302, alkupe-15 räiseen konfigurointitiedostoon sisällytettävää XML-konfigurointitiedostoa 304 ja saatua tuloskonfigurointipuuta keksinnön erään suoritusmuodon mukaisesti, kun muutoskonfigurointitiedosto yhdistetään alkuperäisen konfigurointitiedoston kanssa kuvion 1 menetelmävaiheiden mukaisesti.Figures 3a-c illustrate, by way of example, the original configuration file 302, the XML configuration file 304 to be included in the original configuration file 304, and the resulting result configuration tree according to an embodiment of the invention when the change configuration file is merged with the original configuration file.

Kuvio 4 esittää erästä esimerkkijärjestelmää 400 sovelluksen kustomoimiseksi 20 keksinnön erään edullisen suoritusmuodon mukaisesti.Figure 4 illustrates an exemplary system 400 for customizing an application 20 in accordance with a preferred embodiment of the invention.

Järjestelmään kuuluu välineet 402 mainitun alkuperäisen konfigurointitiedoston asettamiseksi tuloskonfigurointipuuksi sekä välineet 404 mainitun muutoskonfigurointitiedoston ainakin yhden solmun vertaamiseksi tuloskonfigurointipuun vastaa-The system includes means 402 for setting said original configuration file as a result configuration tree, and means 404 for comparing at least one node of said change configuration file with a corresponding result configuration tree.

C\JC \ J

^ vaan solmuun. Lisäksi järjestelmään kuuluu välineet 406 sen tarkistamiseksi tulos- ™ 25 konfigurointipuun mainituista solmuista, onko vähintään yksi tuloskonfigurointipuun v mainituista solmuista samaa tyyppiä ja omaa saman tunnisteen kuin mainitun tu- o loskonfigurointipuun kanssa yhdistettävän muutoskonfigurointitiedoston solmu.^ but a knot. The system further includes means 406 for verifying from said nodes in the result ™ configuration tree whether at least one of said nodes in the result configuration tree v is of the same type and has the same identifier as the node of the change configuration file associated with said result configuration tree.

| Ellei, järjestelmä on järjestetty lisäämään mainitun muutoskonfigurointitiedoston ^ mainittu solmu mainittuun tuloskonfigurointipuuhun välineillä 408, ja jos on, järjes- o 30 telmä on järjestetty yhdistämään mainitun muutoskonfigurointitiedoston mainittu o solmu mainitun tulossolmun kanssa välineillä 410, ellei mainitun muutoskonfigu- o . .| Unless, the system is arranged to insert said node of said change configuration file into said result configuration tree by means 408, and if so, the system 30 is arranged to associate said node of said change configuration file with said result node by means 410, if not. .

w rointitiedoston mainittu solmu sisällä tuhoamiskäskyä, jolloin järjestelmä on järjes tetty poistamaan vastaava solmu tulossolmusta välineillä 412.said node of the file contains a destruction command, wherein the system is arranged to remove the corresponding node from the result node by means 412.

99

Lisäksi järjestelmään voi kuulua myös välineet 414 attribuuttien kopioimiseksi tu-loskonfigurointipuun ao. solmuun niin, että jos tuloskonfigurointipuun vastaava solmu jo sisältää mainitun attribuutin, se korvataan, ja jos tuloskonfigurointipuun vastaava solmu ei sisällä attribuuttia, attribuutti luodaan tuloskonfigurointipuun 5 vastaavaan solmuun.Further, the system may also include means 414 for copying the attributes to the node in the result configuration tree so that if the node corresponding to the result configuration tree already contains said attribute, it is replaced and if the corresponding node in the result configuration tree does not contain the attribute.

Järjestelmään voi myös kuulua välineet 416 tekstisolmujen ketjuttamiseksi ja tu-lossolmun alkuperäisen tekstin korvaamiseksi ketjutetulla tekstillä, kuten myös sekamuotoisia alkioita tukevat välineet 418 muutoskonfigurointitiedoston ainakin yhden solmun tekstin lisäämiseksi tuloskonfigurointipuun vastaavaan solmuun kor-10 vaarnatta tuloskonfigurointipuun 422 vastaavan solmun alkuperäisiä tekstisolmuja.The system may also include means 416 for concatenating text nodes and replacing the original text of the node with concatenated text, as well as means 418 for inserting at least one node text of the change configuration file into the corresponding node of the result configuration tree without interleaving

Kaikki nämä välineet 402-418 samoin kuin edullisesti myös konfigurointitiedosto-muistit (401,403, 422) on yhdistetty toisiinsa väylävälineillä 420, jotka siirtävät dataa ao. välineiden välillä. Muistivälineitä 405 käytetään tietojen tallentamiseen ainakin tilapäisesti, ja prosessointivälineitä (kuten CPU) 407 käytetään esimerkiksi 15 väylällä 402 kulkevien, välineiden ja muistien välisten tietovirtojen hallintaan.All these means 402-418, as well as preferably the configuration file memories (401,403, 422), are interconnected by bus means 420 which transfer data between said means. The memory means 405 are used to store data, at least temporarily, and the processing means (such as the CPU) 407 are used, for example, to control the data flows between the means and the memory over the bus 402.

Kuvio 5 esittää esimerkkinä erästä tietokoneohjelmatuotetta 500 sovelluksen kus-tomoimiseksi keksinnön erään edullisen suoritusmuodon mukaisesti.Figure 5 shows an example of a computer program product 500 for embedding an application according to a preferred embodiment of the invention.

Tietokoneohjelmatuotteeseen kuuluu koodivälineet 502 mainitun alkuperäisen konfigurointitiedoston asettamiseksi tuloskonfigurointipuuksi sekä koodivälineet 20 504 mainitun muutoskonfigurointitiedoston ainakin yhden solmun vertaamiseksi tu loskonfigurointipuun vastaavaan solmuun, kun mainittua tietokoneohjelmatuotetta suoritetaan tietokoneella. Lisäksi tietokoneohjelmatuotteeseen kuuluu välineet 506 sen tarkistamiseksi tuloskonfigurointipuun mainituista solmuista, onko vähintään ^ yksi tuloskonfigurointipuun mainituista solmuista samaa tyyppiä ja omaa saman o 25 tunnisteen kuin mainitun tuloskonfigurointipuun kanssa yhdistettävän muutoskon- ό figurointitiedoston solmu. Ellei, tietokoneohjelmatuote on järjestetty lisäämään mai- ^ nitun muutoskonfigurointitiedoston mainittu solmu mainittuun tuloskonfigurointi- ° puuhun koodivälineillä 508, ja jos on, järjestelmä on järjestetty yhdistämään maini- £ tun muutoskonfigurointitiedoston mainittu solmu mainitun tulossolmun kanssa gj 30 koodivälineillä 510, ellei mainitun muutoskonfigurointitiedoston mainittu solmu si- o säilä tuhoamiskäskyä, jolloin järjestelmä on järjestetty poistamaan vastaava solmu o tulossolmusta koodivälineillä 512.The computer program product includes code means 502 for setting said original configuration file as a result configuration tree, and code means 20 504 for comparing at least one node of said change configuration file with the corresponding node of the result configuration tree when said computer program product is executed on a computer. Further, the computer program product includes means 506 for checking from said nodes in the result configuration tree whether at least one of said nodes in the result configuration tree is of the same type and has the same identifier as the node of the change configuration file associated with said result configuration tree. Unless, the computer program product is arranged to add said node of said change configuration file to said result configuration tree by code means 508, and if so, the system is arranged to associate said node of said change configuration file with said result node with coding means 510 of said file node. o store the destruction command, wherein the system is arranged to remove the corresponding node o from the result node by code means 512.

C\JC \ J

Lisäksi tietokoneohjelmatuotteeseen voi kuulua myös koodivälineet 514 attribuuttien kopioimiseksi tuloskonfigurointipuun ao. solmuun niin, että jos tuloskonfiguroin- 10 tipuun vastaava solmu jo sisältää mainitun attribuutin, se korvataan, ja jos tulos-konfigurointipuun vastaava solmu ei sisällä attribuuttia, attribuutti luodaan tulos-konfigurointipuun vastaavaan solmuun.Further, the computer program product may also include code means 514 for copying attributes to the node in the result configuration tree so that if the node corresponding to the result configuration tree already contains said attribute, it is replaced and if the corresponding node in the result configuration tree does not contain the attribute.

Tietokoneohjelmatuotteeseen voi myös kuulua koodivälineet 516 tekstisolmujen 5 ketjuttamiseksi ja tulossolmun alkuperäisen tekstin korvaamiseksi ketjutetulla tekstillä, kuten myös sekamuotoisia alkioita tukevat koodivälineet 518 muutoskonfigu-rointitiedoston ainakin yhden solmun tekstin lisäämiseksi tuloskonfigurointipuun vastaavaan solmuun korvaamatta tuloskonfigurointipuun vastaavan solmun alkuperäisiä tekstisolmuja.The computer program product may also include code means 516 for concatenating text nodes 5 and replacing the original text of the result node with concatenated text, as well as code means 518 for inserting at least one node text in a change configuration file into a corresponding node corresponding to

10 Keksintöä on yllä selitetty viitaten edellä mainittuihin suoritusmuotoihin, ja useita keksinnön etuja on esitelty. On selvää, että keksintö ei rajoitu pelkästään näihin suoritusmuotoihin, vaan käsittää kaikki mahdolliset suoritusmuodot, jotka kuuluvat keksinnöllisen ajatuksen ja seuraavien patenttivaatimusten piiriin.The invention has been described above with reference to the above embodiments, and several advantages of the invention have been demonstrated. It is to be understood that the invention is not limited to these embodiments, but encompasses all possible embodiments which fall within the scope of the inventive idea and the following claims.

C\JC \ J

δ c\j i o O) oδ c \ j i o O) o

XX

cccc

CLCL

C\l O)C \ l O)

OO

OO

1^1?

OO

OO

CMCM

Claims (11)

1111 1. Menetelmä (100) XML-konfigurointitiedostoa käyttävän ohjelmistosovelluksen kustomoimiseksi ainakin yhdellä muutoskonfigurointitiedostolla (104), johon kuuluu ainakin yksi solmu, ja johon mainittuun sovellukseen liittyy alkuperäinen konfigu-5 rointitiedosto (106), johon kuuluu solmuja puuhierarkiassa, tunnettu siitä, että menetelmässä a) mainittu alkuperäinen konfigurointitiedosto asetetaan tuloskonfigurointi-puuksi (112), b) muutoskonfigurointitiedoston solmussa oleva attribuutti kopioidaan tulos- 10 konfigurointipuun vastaavaan solmuun niin, että jos tuloskonfigurointipuun vastaava solmu jo sisältää mainitun attribuutin, se korvataan (120), ja jos tuloskonfigurointipuun vastaava solmu ei sisällä attribuuttia, attribuutti luodaan (118) tuloskonfigurointipuun vastaavaan solmuun, jolloin 15 c) tarkistetaan, onko vähintään yksi muutoskonfigurointitiedoston solmu samaa tyyppiä (108) ja omaako se saman tunnisteen (136) kuin tuloskonfigurointipuun solmu, ja c1) mikäli kyllä, mainitun muutoskonfigurointitiedoston mainittu solmu yhdistetään (150) tuloskonfigurointipuun mainitun solmun kanssa, 20 ellei mainitun muutoskonfigurointitiedoston mainittu solmu sisällä tu- hoamiskäskyä (144), jolloin vastaava solmu poistetaan (148) tulos-konfigurointipuusta, ja c2) mikäli ei, mainitun muutoskonfigurointitiedoston mainittu solmu lisätään (142) mainittuun tuloskonfigurointipuuhun. 1 2 3 4 5 6A method (100) for customizing a software application using an XML configuration file with at least one change configuration file (104) having at least one node, said application having an original configuration file (106) comprising nodes in the tree hierarchy, characterized in that b) copying the attribute in the node of the change configuration file to the corresponding node in the result configuration tree so that if the corresponding node in the result configuration tree already contains said attribute, it is replaced (120), and if the c) checking if at least one node in the change configuration file is of the same type (108) and has the same identifier (136) as the node in the result configuration tree; and c1) if yes, combining (150) said node of said change configuration file with said node in the result configuration tree, unless said node of said change configuration file contains a delete command (144), removing the corresponding node (148) from the result configuration file, and c2) if not; adding the node (142) to said result configuration tree. 1 2 3 4 5 6 2. Patenttivaatimuksen 1 mukainen menetelmä, jossa puu sisältää myös vähin- C\J ...... £ taan yhden alipuun. C\J 2 3 ° 3. Patenttivaatimuksen 1 mukainen menetelmä, johon menetelmään kuuluu 4 g myös vaihe b1), jossa, jos muutoskonfigurointitiedosto sisältää tekstisolmuja (130), 5 x tekstisolmut ketjutetaan ja alkuperäinen teksti mainitun tuloskonfigurointipuun vas- 6 taavassa solmussa korvataan ketjutetulla tekstillä. C\J σ>The method of claim 1, wherein the tree also includes at least one subtree. The method of claim 1, wherein the method also comprises 4 g of step b1), where, if the change configuration file contains text nodes (130), 5 x text nodes are concatenated and the original text in the corresponding node of said result configuration tree is replaced by concatenated text. . C \ J σ> 4. Jonkin edeltävän patenttivaatimuksen mukainen menetelmä, joka menetelmä § perustuu geneeriseen XML/DOM-puu-yhdistämisalgoritmiin. CVJ 12The method according to any one of the preceding claims, wherein the method is based on a generic XML / DOM tree merge algorithm. CVJ 12 5. Jonkin edeltävän patenttivaatimuksen mukainen menetelmä, jossa useita muutoskonfigurointitiedostoja yhdistetään peräkkäisesti alkuperäisen konfigurointi-tiedoston kanssa yhdeksi tuloskonfigurointipuuksi.The method of any preceding claim, wherein the plurality of change configuration files are successively merged with the original configuration file into a single result configuration tree. 6. Järjestelmä (400) XML-konfigurointitiedostoa käyttävän ohjelmistosovelluk-5 sen kustomoimiseksi ainakin yhdellä muutoskonfigurointitiedostolla (104), johon kuuluu ainakin yksi solmu, ja johon mainittuun sovellukseen liittyy alkuperäinen konfigurointitiedosto (106), johon kuuluu solmuja puuhierarkiassa, tunnettu siitä, että järjestelmä a) on järjestetty asettamaan mainittu alkuperäinen konfigurointitiedosto tulos- 10 konfigurointipuuksi (402), b) on järjestetty kopioimaan (414) muutoskonfigurointitiedoston solmussa oleva attribuutti tuloskonfigurointipuun vastaavaan solmuun niin, että jos tulos-konfigurointipuun vastaava solmu jo sisältää mainitun attribuutin, se korvataan, ja jos tuloskonfigurointipuun vastaava solmu ei sisällä attribuuttia, att- 15 ribuutti luodaan tuloskonfigurointipuun vastaavaan solmuun, jolloin järjestelmä on lisäksi c) järjestetty tarkistamaan (406), onko vähintään yksi muutoskonfigurointitiedoston solmu samaa tyyppiä ja omaako se saman tunnisteen kuin tuloskonfigurointipuun solmu, ja 20 c1) mikäli kyllä, järjestelmä on järjestetty (410) yhdistämään mainitun muutoskonfigurointitiedoston mainittu solmu tuloskonfigurointipuun mainitun solmun kanssa, ellei mainitun muutoskonfigurointitiedoston mainittu solmu sisällä tuhoamiskäskyä, jolloin järjestelmä on järjestetty poistamaan vastaava solmu tuloskonfigurointipuusta, ja 25 c2) mikäli ei, järjestelmä on järjestetty (408) lisäämään mainitun ^ muutoskonfigurointitiedoston mainittu solmu mainittuun tuloskonfigu- o rointipuuhun. όA system (400) for customizing a software application using an XML configuration file with at least one change configuration file (104) having at least one node, said application having an original configuration file (106) comprising nodes in the tree hierarchy, characterized by: ) is arranged to set said original configuration file as a result configuration tree (402), b) is arranged to copy (414) an attribute in the node of the change configuration file to the corresponding node in the result configuration tree so that if the corresponding node in the result configuration tree already contains the corresponding node does not contain an attribute, the attribute is created in the corresponding node in the result configuration tree, wherein the system is further c) arranged to check (406) whether at least one node of the change configuration file is of the same type and o the same identifier as the result configuration tree node, and 20 c1) if yes, the system is configured (410) to associate said node of the change configuration file with the result configuration tree with said node, unless said node of said change configuration file contains a delete command; c2) if not, the system is provided (408) to add said node of said change configuration file to said result configuration tree. ό 7. Patenttivaatimuksen 6 mukainen järjestelmä, jossa puu sisältää myös vähin- 0 tään yhden alipuun. CCThe system of claim 6, wherein the tree also includes at least one subtree. CC 8. Patenttivaatimuksen 6 mukainen järjestelmä, jossa, jos muutoskonfigurointi- g tiedosto sisältää tekstisolmuja, järjestelmä on lisäksi järjestetty (416) kohdassa b1) ° ketjuttamaan tekstisolmut ja korvaamaan mainitun tuloskonfigurointipuun vastaa- ^ vassa solmussa oleva alkuperäinen teksti ketjutetulla tekstillä. 13The system of claim 6, wherein, if the change configuration file contains text nodes, the system is further arranged (416) at b1) to concatenate the text nodes and replace the original text in the corresponding node of said result configuration tree with concatenated text. 13 9. Jonkin edeltävän patenttivaatimuksen 6-8 mukainen järjestelmä, joka järjestelmä on järjestetty käyttämään algoritmia, joka perustuu geneeriseen XML/DOM-puu-yhdistämisalgoritmiin.The system of any one of claims 6 to 8, wherein the system is configured to use an algorithm based on a generic XML / DOM tree merge algorithm. 10. Jonkin edeltävän patenttivaatimuksen 6-9 mukainen järjestelmä, jossa järjes-5 telmä on järjestetty yhdistämään peräkkäisesti useita muutoskonfigurointitiedosto- ja alkuperäisen konfigurointitiedoston kanssa yhdeksi tuloskonfigurointipuuksi.The system of any one of claims 6 to 9, wherein the system is arranged to sequentially combine a plurality of change configuration files and the original configuration file into a single result configuration tree. 11. Tietokoneohjelmatuote (500) XML-konfigurointitiedostoa käyttävän ohjelmistosovelluksen kustomoimiseksi ainakin yhdellä muutoskonfigurointitiedostolla (104), johon kuuluu ainakin yksi solmu, ja johon mainittuun sovellukseen liittyy al- 10 kuperäinen konfigurointitiedosto (106), johon kuuluu solmuja puuhierarkiassa, tunnettu siitä, että tietokoneohjelmatuotteeseen kuuluu ohjelmakoodivälineet (502-518), jotka on järjestetty suorittamaan ainakin patenttivaatimuksen 1 mukaiset vaiheet, kun mainittu tietokoneohjelmatuote suoritetaan tietokoneella. C\J δ c\j i o O) o X cc CL C\l O) O O 1^ O O CM 14A computer program product (500) for customizing a software application using an XML configuration file with at least one change configuration file (104) comprising at least one node and said application associated with an original configuration file (106) comprising nodes in a tree hierarchy, characterized in that program code means (502-518) configured to perform at least the steps of claim 1 when said computer program product is executed on a computer. C \ J δ c \ j i o O) o X cc CL C \ l O) O O 1 ^ O O CM 14
FI20070092A 2007-02-02 2007-02-02 Procedures and systems for customizing an application using XML configuration files FI123305B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FI20070092A FI123305B (en) 2007-02-02 2007-02-02 Procedures and systems for customizing an application using XML configuration files
PCT/FI2008/000019 WO2008092989A1 (en) 2007-02-02 2008-01-31 Method and system for customizing an application using xml configuration files

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20070092A FI123305B (en) 2007-02-02 2007-02-02 Procedures and systems for customizing an application using XML configuration files
FI20070092 2007-02-02

Publications (3)

Publication Number Publication Date
FI20070092A0 FI20070092A0 (en) 2007-02-02
FI20070092A FI20070092A (en) 2008-08-03
FI123305B true FI123305B (en) 2013-02-15

Family

ID=37832137

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20070092A FI123305B (en) 2007-02-02 2007-02-02 Procedures and systems for customizing an application using XML configuration files

Country Status (2)

Country Link
FI (1) FI123305B (en)
WO (1) WO2008092989A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10261805B2 (en) 2014-10-08 2019-04-16 Nec Corporation Information processing apparatus for acquiring and classifying components in a configuration definition, information processing method, and recording medium
US10331460B2 (en) * 2016-09-29 2019-06-25 Vmware, Inc. Upgrading customized configuration files
CN113448642B (en) * 2020-03-11 2022-11-15 成都鼎桥通信技术有限公司 System file access method and device and electronic equipment
CN117591117B (en) * 2024-01-19 2024-04-23 中建三局信息科技有限公司 Page generation method, system, equipment and storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725367B2 (en) * 2001-01-29 2004-04-20 Microsoft Corporation Methods and systems for constructing and interpreting hierarchical configuration files
GB2411017A (en) * 2004-02-13 2005-08-17 Satellite Information Services Updating mark-up language documents from contained instructions
US7373586B2 (en) * 2004-09-03 2008-05-13 International Business Machines Corporation Differencing and merging tree-structured documents
US20060130047A1 (en) * 2004-11-30 2006-06-15 Microsoft Corporation System and apparatus for software versioning

Also Published As

Publication number Publication date
FI20070092A (en) 2008-08-03
WO2008092989A1 (en) 2008-08-07
FI20070092A0 (en) 2007-02-02

Similar Documents

Publication Publication Date Title
TWI566180B (en) A system and method thereof for creating dynamically attachable and detachable binary files
Wood et al. Document object model (DOM) level 3 core specification
World Wide Web Consortium Document object model (DOM) level 3 core specification
US11321148B2 (en) Method and system for improving startup performance and interoperability of a virtual application
US7774435B2 (en) System and method for batch tuning intelligent devices
US7502996B2 (en) System and method for fast XSL transformation
CA2433247C (en) System and method for supporting non-native xml in native xml of a word-processor document
US7451433B2 (en) System and method for descriptor classes
US7096420B1 (en) Method and system for automatically documenting system command file tags and generating skeleton documentation content therefrom
US7698694B2 (en) Methods and systems for transforming an AND/OR command tree into a command data model
US7779398B2 (en) Methods and systems for extracting information from computer code
US7559052B2 (en) Meta-model for associating multiple physical representations of logically equivalent entities in messaging and other applications
US8924837B2 (en) Text file interface support in an object oriented application
JP5072845B2 (en) Programmability for XML data store for documents
WO2007030586A1 (en) Programmability for xml data store for documents
KR20160018678A (en) Interface for representing bindings between objects in a web browser&#39;s layout engine memory space and objects in a scripting engine memory space
US20060259854A1 (en) Structuring an electronic document for efficient identification and use of document parts
FI123305B (en) Procedures and systems for customizing an application using XML configuration files
van Rest et al. Robust real-time synchronization between textual and graphical editors
US20080276230A1 (en) Processing bundle file using virtual xml document
Haase et al. Introduction to openArchitectureWare 4.1. 2
EP1452962B1 (en) System and method for defining and using subclasses declaratively within markup
US20200257660A1 (en) Object model generation
KR100545633B1 (en) storage medium for software package descripter file in SCA system and file parsing method thereof
Nicol et al. Document object model (DOM) level 3 core specification

Legal Events

Date Code Title Description
FG Patent granted

Ref document number: 123305

Country of ref document: FI

Kind code of ref document: B