Nothing Special   »   [go: up one dir, main page]

EP1869548A2 - Synchronisation of data - Google Patents

Synchronisation of data

Info

Publication number
EP1869548A2
EP1869548A2 EP06725635A EP06725635A EP1869548A2 EP 1869548 A2 EP1869548 A2 EP 1869548A2 EP 06725635 A EP06725635 A EP 06725635A EP 06725635 A EP06725635 A EP 06725635A EP 1869548 A2 EP1869548 A2 EP 1869548A2
Authority
EP
European Patent Office
Prior art keywords
data
objects
exchanged
export
version
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP06725635A
Other languages
German (de)
French (fr)
Inventor
Ronald Lange
Thomas Banik
Rainer Bitzer
Rainer Heller
Peter Niederhuber
Rudolf Pohlan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of EP1869548A2 publication Critical patent/EP1869548A2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion

Definitions

  • the invention relates to a method and a device for synchronizing data.
  • the invention has for its object to simplify the synchronization of data between applications.
  • This object is achieved by a method for the synchronization of data between applications, in which the data is at least partially exchanged between the applications, whereby the exchanged data is synchronized with data present in the respective application, the data being marked for incompleteness is assigned.
  • This object is achieved by a system for the synchronization of data between applications, wherein data is at least partially interchangeable between the applications, wherein synchronization means are provided for synchronizing the exchanged data with existing data in the respective application, wherein the data can be assigned an identification for an incompleteness is.
  • XML has become the basic description language for structured data exchange. However, XML does not provide sufficient specifications to handle the above mentioned. Fully support the scenario. First further definitions were made in the PNO specification XMLgPROFIBUS (object model, management of foreign keys, multilingualism, ).
  • the invention addresses the change management in data exchange. These are u.a. the following use cases that can not be adequately supported by XML alone:
  • a root object can typically be selected, from which all objects are exported. additionally Filter settings can still be defined so that not all object data is always exported. o How can recognize the importing application, wel ⁇ ches root object or which filter settings were selected overall? o How can the resulting export files still be described using a uniform XML schema?
  • PROFIBUS Guideline XML @ PROFIBUS addresses change management only unzurei ⁇ accordingly.
  • the present invention relates in the exporting ⁇ approximately examples in part on the fenen in this guideline getrof ⁇ specifications.
  • This marking is also referred to as partial labeling.
  • the identification is advantageously hierarchically assignable and / or inheritable.
  • An exporting application can define whether to perform a full or partial export. There are several scenarios for a partial export:
  • Each object in an export file can have an optional attribute PartialExport, with the possible values being true or false.
  • This attribute refers to the Whether ⁇ ject itself and aggregated to all its sub-elements, if not a subobject his own PartialExport attribute sitting be ⁇ . At the root object, the attribute has a default value of true.
  • PartialExport of an object is false (either because it is explicitly specified in the object or because it is "inherited" by its parent), then the importing application must assume that the file contains all the subelements of that object exists and contains additional subobjects that are not in the import files are found, they should be considered deleted. In most cases, the importing application does not automatically delete its internal object in such a scenario, but asks the user for confirmation.
  • PartialExport true the importing application processes all sub-objects, gene of the products contained in the import file ⁇ , and allows additional subobjects which it may have in their ternal in ⁇ data unchanged.
  • This example means:
  • o ObjectA has a child ObjectBl and can also have other child objects o ObjectB has exactly the child objects ObjectCl and ObjectDl and no other child objects.
  • an object type "dynamic Attribu ⁇ te" exhibit, ie attributes that can be present in an instance of that type or not and possibly even added during the lifetime of an instance or deleted.
  • an object which is a "Settings” feature with such attributes ent holds ⁇
  • an optional "PartialAttribute” attribute include. Just like the PartialExport attribute refers this Att ⁇ ribut to the object itself and on all of its aggregated sub-elements, if not a subobject his own partial Attributes attribute owns. At the root object that has Att ⁇ ribut a default value of "true”.
  • PartialAttributes is false, the importing application assumes that the import file contains all the attributes of the object. If the object already exists and contains additional dynamic attributes, they should be seeks as deleted be ⁇ .
  • the import ⁇ de application processes all attributes that are present in the import file, and allows additional attributes it may have in their ternal in ⁇ object unchanged.
  • PartialAttributes is irrelevant to attributes that are not dy ⁇ cally are (which are always present in the object instance and can not be deleted).
  • the importing application can always static attributes unchanged when the Attrib ⁇ but not present in the import file.
  • PartialExport or PartialAttributes If an exporting application sets PartialExport or PartialAttributes to "true", it must have a way to specify that an object or attribute should be deleted by importing (simply not importing the deleted object is sufficient) not enough, the importing application would just leave its internal data unchanged).
  • every object and every dynamic attribute can have a "Deleted" attribute.
  • the deleted flag is set for an object or attribute, it is not necessary to write the full content of the element to the export file. However, it must be possible for the importing application to identify the object or attribute to be deleted, so that, for example, the name and / or the idea of an object should be specified; like any application-specific identifiers that may be present.
  • the importing application should also consider the corresponding object or attribute deleted. This use is per ⁇ not recommended that the exporting application should simply not export the corresponding element to specify that it was deleted.
  • the user may choose to either export a complete project or just a sub-tree.
  • a root object in the tree view can select a root object in the tree view and start an export of this object and its subelements via a (context) menu.
  • a (context) menu Is not normally ever ⁇ the object in a project hierarchy as the root object meaningful ⁇ full, it should only specific types can be selected for this purpose.
  • the parent objects of the selected root object should also be written to the export file as "shell objects".
  • This document does not define a mechanism for formulating such filters. It is left to export the application to determine whether, for example filters are fixed or can be defined by the user or whether a filter is a "posi- tive list” exportable types or a "negative list” ge ⁇ -filtered types.
  • Fig. 4 gives an example of the different ways to restrict an export.
  • An XML schema file plays in the overall export / import process.
  • An XSD file can have two different purposes:
  • a schema (and the schema fragments shown throughout the present document) has the main purpose of describing the XML format.
  • the fact that the instance files can be validated on the basis of such a scheme is secondary - this alone will not guarantee that the instance may be he ⁇ successfully imported.
  • a compatible change is, for example, the addition of elements or attributes to existing objects. Incompatible changes include deleting or renaming attributes or structural changes.
  • the version number of the schema he ⁇ should höht (typically mer to the next Hauptversionsnum-).
  • a single XML instance file can combine elements from different versions, that is, from different namespaces. This allows an importing application - which is not necessarily interested in the full file - to determine if it is affected by an incompatible change. Theoretically, this mechanism can be used individually for each element type. However, it is recommended to use it only on the granularity of possible root objects for export.
  • the format for the ObjectB subobject is changed incompatible, but the rest of the XML format (for objects A, C, and so on) remains unchanged. It may be useful to use only an updated namespace for the subtree starting with ObjectB. This may be reasonable if it is likely that export files will not contain instances of ObjectB (if it is an optional element) or import clients that ObjectB does not care about.
  • ⁇ Document xmlns "http: // www. Siemens.com/automation / 04/12 / SimaticML / SW"
  • Fig. 5 shows an example.
  • the version number of the XML format is increased (typically to the next minor version number), the name space remains unchanged.
  • the version number is part of the document header in each instance file as well as an XML schema file:
  • the importing application can determine how to perform the import.
  • the application can rest assured that the file contains all the expected elements in it ⁇ waited format, but must come to be prepared to compatible enhancements (additional eg elements or attributes)
  • every object in an XML export file can carry an optional version attribute.
  • an exporting application can write the "project version number" of this object in the internal data representation.
  • XML format for instances of the same type in the same file must be the same (that is, the same schema), even if their data version is different.
  • an XML always export an export file that corresponds to a specific version, even if the internal data representation can contain objects of different versions.
  • Certain objects may additionally carry "version information", e.g., something like “firmware version” or a version number specified by the user. From the standpoint of export / import and XML format, such an attribute is treated just like any other object attribute (such as a comment field) and is stored in the object's "settings" feature.
  • version information e.g., something like "firmware version” or a version number specified by the user.
  • An export file may only contain parts of a project. That is why it is possible that a relation an exported object to an object that is not part of the export.
  • the importing application When importing an external reference, the importing application must be able to correctly resolve the reference, especially if
  • the target object As “envelope object” is exported, that is, it is written as a "placeholder” without its contents (attitudes, child objects and wider at ⁇ relations) in the export file.
  • envelope object Such a shell object maintains its full name hierarchy in a "path" attribute in addition to the local name (so that the importing application has access to the full name hierarchy).
  • each relation writes its own shell object. Have these shell objects its own unique ID (to ensure that the ID within ei ⁇ ner file is unique), but refer to the same target object (ie, point to the same name, path and the same Appld 's).
  • the invention thus relates to a method and a system for the synchronization of data between applications, in which the data is at least partially exchanged between the applications, the exchanged data being synchronized with data present in the respective application.
  • an incomplete tag be mapped to the data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)

Abstract

The invention relates to a method and a system for the synchronisation of data between applications. According to said method, the data is exchanged at least partially between the applications, said exchanged data being synchronised with the data that is present in the respective application. To simplify the synchronisation process, according to the invention an identification that signifies incompleteness is assigned to the data.

Description

Beschreibungdescription
Synchronisation von DatenSynchronization of data
Die Erfindung betrifft ein Verfahren sowie eine Vorrichtung zur Synchronisation von Daten.The invention relates to a method and a device for synchronizing data.
Der Erfindung liegt die Aufgabe zugrunde, die Synchronisation von Daten zwischen Applikationen zu vereinfachen.The invention has for its object to simplify the synchronization of data between applications.
Diese Aufgabe wird durch ein Verfahren zur Synchronisation von Daten zwischen Applikationen gelöst, bei welchem die Daten zumindest teilweise zwischen den Applikationen ausgetauscht werden, wobei die ausgetauschten Daten mit in der je- weiligen Applikation vorhandenen Daten synchronisiert werden, wobei den Daten eine Kennzeichnung für eine Unvollständigkeit zugeordnet wird.This object is achieved by a method for the synchronization of data between applications, in which the data is at least partially exchanged between the applications, whereby the exchanged data is synchronized with data present in the respective application, the data being marked for incompleteness is assigned.
Diese Aufgabe wird durch ein System zur Synchronisation von Daten zwischen Applikationen gelöst, wobei Daten zumindest teilweise zwischen den Applikationen austauschbar sind, wobei Synchronisationsmittel zur Synchronisierung der ausgetauschten Daten mit in der jeweiligen Applikation vorhandenen Daten vorgesehen sind, wobei den Daten eine Kennzeichnung für eine Unvollständigkeit zuordenbar ist.This object is achieved by a system for the synchronization of data between applications, wherein data is at least partially interchangeable between the applications, wherein synchronization means are provided for synchronizing the exchanged data with existing data in the respective application, wherein the data can be assigned an identification for an incompleteness is.
In der Engineeringkette von der Produkt- bis zur Anlagenpla¬ nung und Anlagenautomatisierung gibt es Übergänge zwischen verschiedenen Datenhaltungen. Dies ist zum einen technisch bedingt, da es (auch in Zukunft) nicht eine Produktsuite ge¬ ben wird, die alle Aspekte integriert anbietet . Zum anderen ist dies durch die verschiedenen Anwender-Rollen innerhalb der Engineeringkette bedingt, die durchaus zeitweise unsyn- chronisiert arbeiten möchten und zu definierten Zeitpunkten einen Abgleich mit den Datenhaltungen der anderen Anwender- Rollen durchführen möchten. Dabei ist es wichtig, dass eine Änderung potenziell von allen Anwender-Rollen durchgeführt werden kann, der Abgleich der Datenhaltungen muss also prinzipiell bi- oder multidirektional erfolgen können.In the engineering chain from product to Anlagenpla ¬ planning and plant automation there are transitions between different data management systems. On the one hand, this is technically conditioned because there will not be (even in the future) a product suite that offers all aspects integrated. On the other hand, this is due to the different user roles within the engineering chain, which want to work occasionally unsynchronized and want to compare with the data management of the other user roles at defined times. It is important that a change is potentially carried out by all user roles In principle, the synchronization of the data records must therefore be bi- or multidirectional.
Als Basis-Beschreibungssprache für den strukturierten Daten- austausch hat sich XML durchgesetzt. Allerdings bietet XML keine ausreichenden Festlegungen, um das o.g. Szenario vollständig zu unterstützen. Erste weitergehende Festlegungen wurden in der PNO Spezifikation XMLgPROFIBUS getroffen (Objektmodell, Verwaltung von Fremdschlüsseln, Mehrsprachigkeit, ... ) .XML has become the basic description language for structured data exchange. However, XML does not provide sufficient specifications to handle the above mentioned. Fully support the scenario. First further definitions were made in the PNO specification XMLgPROFIBUS (object model, management of foreign keys, multilingualism, ...).
Die Erfindung adressiert insbesondere das Änderungsmanagement beim Datenaustausch. Dies sind u.a. folgende Use Cases, die durch XML alleine nicht ausreichend unterstützt werden kön- nen :In particular, the invention addresses the change management in data exchange. These are u.a. the following use cases that can not be adequately supported by XML alone:
o Falls die Datenhaltungen schon einmal synchronisiert wur¬ den, sollten bei späteren Synchronisationen nur die Änderungen ausgetauscht werden. o Wie kann man die Änderungen auf die bereits ausge¬ tauschten Projektdaten beziehen? o Wie können Löschungen übermittelt werden? o Wie können Objektpfade übergeben werden, ohne die Ob¬ jektdaten zu duplizieren?o If WUR already synchronizes the data conversations ¬, only the changes need to be replaced in subsequent synchronizations. o How can the changes to the already ¬ exchange project data relate? o How can deletions be transmitted? are o How can pass object paths ¬ jektdaten without Whether to duplicate?
o Die Modelle der verschiedenen Datenhaltungen sind typischerweise nicht deckungsgleich. Daher kann eine Datenhal¬ tung nur unvollständige Information für andere Datenhal¬ tungen liefern. o Wie wird diese Unvollständigkeit ausgedrückt? Insbe¬ sondere wie wird unterschieden, dass ein Datum in Austausch nicht vorhanden ist, weil es die exportie¬ rende Datenhaltung nicht kennt oder weil das Datum gelöscht wurde?o The models of the different data storage systems are typically not congruent. Therefore, a Datenhal ¬ supply obligations tung incomplete information for other Datenhal ¬. o How is this incompleteness expressed? In particular ¬ sondere such distinction is that a date in exchange does not exist, because it does not know the exportie ¬-saving data management, or because the date was canceled?
o Beim Export kann typischerweise ein Root-Objekt ausgewählt werden, ab dem alle Objekte exportiert werden. Zusätzlich können noch Filtereinstellungen definiert werden, dass nicht immer alle Objektdaten exportiert werden. o Wie kann die importierende Applikation erkennen, wel¬ ches Root Objekt bzw. welche Filtereinstellungen ge- wählt wurden? o Wie können die entstehenden Exportdateien trotzdem über ein einheitliches XML-Schema beschrieben werden?o During export, a root object can typically be selected, from which all objects are exported. additionally Filter settings can still be defined so that not all object data is always exported. o How can recognize the importing application, wel ¬ ches root object or which filter settings were selected overall? o How can the resulting export files still be described using a uniform XML schema?
o Die Datenschemas der Datenhaltungen können sich ändern. o Wie kann beim Import von Datenhaltungen festgestellt werden, ob Änderungen des Datenschemas vorliegen? Wenn ja, welcher Art (kompatibel, inkompatibel, nur objektbezogen, ... ) ?o The data schemas of the data records can change. o How can you determine if there are changes to the data schema when importing data records? If so, of what kind (compatible, incompatible, object related, ...)?
Die Spezifikation PROFIBUS Guideline XMLgPROFIBUS (PNO Order No. 2.342) adressiert das Änderungsmanagement nur unzurei¬ chend. Die vorliegende Erfindung bezieht sich in den Ausfüh¬ rungsbeispielen teilweise auf die in dieser Guideline getrof¬ fenen Festlegungen.The specification PROFIBUS Guideline XML @ PROFIBUS (PNO Order No. 2342) addresses change management only unzurei ¬ accordingly. The present invention relates in the exporting ¬ approximately examples in part on the fenen in this guideline getrof ¬ specifications.
Die vorliegende Erfindung und deren vorteilhaften Ausgestal¬ tungen lösen die oben angegebenen Fragestellungen. Die in der Beschreibung angegebene konkrete XML-Syntax ist als Ausfüh¬ rungsbeispiel zu verstehen, die Erfindung ist davon natürlich unabhängig. Die Erfindung bzw. die vorteilhaften Ausgestaltungen der Erfindung enthalten u. a. folgende Konzepte:The present invention and its advantageous Ausgestal ¬ lines solve the above questions. The specified in the description of concrete XML syntax is to be understood as exporting approximately ¬ example, the invention is of course independent of it. The invention or the advantageous embodiments of the invention include the following concepts:
o Kennzeichnung für die Unvollständigkeit von exportierteno Marking for the incompleteness of exported
Objekten und Attributen. Diese Kennzeichnung wird auch als Partial Kennzeichnung bezeichnet. Die Kennzeichnung ist vorteilhafterweise hierarchisch zuordenbar und/oder vererbbar .Objects and attributes. This marking is also referred to as partial labeling. The identification is advantageously hierarchically assignable and / or inheritable.
o Konzept von Hüllobjekten (shell objects) , die zwar alle zur Idenfikation nötigen Attribute (Name, ID) tragen, jedoch nicht als vollwertige Objekte übertragen werden. Ba¬ sis kann hier insbesondere eine Namenshierarchie sein. o Versionierungskonzept (über XML-Schemaversion, XML- Namespace und Data version) , dass beim Import einer Daten¬ haltung die Art der Datenänderungen erkannt werden kann und generisch darauf reagiert werden kann. Dadurch ist in den meisten Fällen eine Änderung eines Datenschemas einer exportierenden Applikation möglich, ohne dass die Importroutinen der anderen Datenhaltungen geändert werden müssen. Vorteilhafterweise wird eine mehrschichtige Kenn- Zeichnung der Version verwendet.o Concept of shell objects that carry all the attributes required for identification (name, ID), but are not transferred as full-fledged objects. Ba ¬ sis can be here in particular a name hierarchy. Versioning Concept (via XML schema version, XML namespace and data version) that when importing a data ¬ pose the kind of data changes can be detected and can be generically responded. As a result, in most cases it is possible to change a data schema of an exporting application without having to change the import routines of the other data records. Advantageously, a multi-layered identification drawing of the version is used.
Nachfolgend wird die Erfindung anhand der in den Figuren dargestellten Ausführungsbeispiele näher beschrieben und erläu¬ tert.The invention will be described with reference to the embodiment shown in the figures, embodiments and tert erläu ¬.
Es zeigen:Show it:
FIG 1 eine prinzipielle Darstellung einer Engineeringket¬ te,1 shows a basic representation of an engineering chain ,
FIG 2 ein Ablaufdiagramm zur Darstellung des Imports von Daten,2 shows a flow diagram for the representation of the import of data,
FIG 3 ein Ablaufdiagramm zur Darstellung der Zusammenfüh- rung von Objekten,3 shows a flow diagram for the representation of the merging of objects,
FIG 4 verschiedene Möglichkeiten der Restriktion bei einem Export von Daten,4 different possibilities of restriction in an export of data,
FIG 5 ein Beispiel für Namenshierarchien und5 shows an example of name hierarchies and
FIG 6 ein Beispiel für externe Referenzen. Eine exportierende Applikation kann definieren, ob sie einen vollen oder einen teilweisen Export durchführt. Es gibt mehrere Szenarien für einen teilweisen Export:6 shows an example of external references. An exporting application can define whether to perform a full or partial export. There are several scenarios for a partial export:
o Eine Applikation, die Änderungen seit einem vorherigen Export verfolgen kann, könnte sich entscheiden, nur diese „Delta-Informationen" zu exportieren, d.h. nur die neuen oder editierten Objekte und Attribute zu exportie¬ ren .o An application can track the changes since a previous export, only this could decide to "delta information" to export only the new or edited objects and attributes that to exportie ¬ ren.
o Einer externen Applikation könnten möglicherweise nicht alle Daten zur Verfügung stehen, die eine importierende Applikation erwartet (z.B. aufgrund von Objektmodelldis¬ krepanzen) , so dass sie den Export als teilweise markie- ren würde.o One external application may not be available all the data available, which expects an importing application (eg krepanzen due Objektmodelldis ¬) so they that export as part reindeer marking would.
o Wenn eine Applikation nicht ihr vollständiges Projekt sondern nur einen Subbaum exportiert, dann sind die ü- bergeordneten Objekte des Wurzelobjekts (die als Hüllob- jekte exportiert werden) definitionsgemäß teilweise. Dasselbe gilt für etwaige Zielobjekte externer Referen¬ zen, die existieren können.o If an application does not export its complete project, but only a subtree, then the superior objects of the root object (which are exported as shell objects) are by definition partial. The same applies to any target objects of external REFERENCED ¬ zen that may exist.
Jedes Objekt in einer Exportdatei kann ein optionales Attri- but PartialExport aufweisen, wobei die möglichen Werte „true" oder „false" sind. Dieses Attribut bezieht sich auf das Ob¬ jekt selbst und auf alle seine aggregierten Subelemente, wenn nicht ein Subobjekt sein eigenes PartialExport-Attribut be¬ sitzt. An dem Wurzelobjekt hat das Attribut einen Vorgabewert von „true".Each object in an export file can have an optional attribute PartialExport, with the possible values being true or false. This attribute refers to the Whether ¬ ject itself and aggregated to all its sub-elements, if not a subobject his own PartialExport attribute sitting be ¬. At the root object, the attribute has a default value of true.
Wenn PartialExport eines Objekts false ist (weil es entweder explizit in dem Objekt spezifiziert wird oder weil es von seinem übergeordneten Objekt „geerbt" wird) , muss die impor- tierende Applikation annehmen, dass die Datei alle Subelemente dieses Objekts enthält. Wenn das Objekt bereits existiert und zusätzliche Subobjekte enthält, die nicht in der Import- datei zu finden sind, sollten sie als gelöscht betrachtet werden. In den meisten Fällen löscht die importierende Applikation ihr internes Objekt in einem solchen Szenario nicht automatisch, sondern erfragt vom Benutzer Bestätigung.If PartialExport of an object is false (either because it is explicitly specified in the object or because it is "inherited" by its parent), then the importing application must assume that the file contains all the subelements of that object exists and contains additional subobjects that are not in the import files are found, they should be considered deleted. In most cases, the importing application does not automatically delete its internal object in such a scenario, but asks the user for confirmation.
Wenn PartialExport true ist, verarbeitet die importierende Applikation alle Subobjekte, die in der Importdatei vorlie¬ gen, und lässt zusätzliche Subobjekte, die sie in ihren in¬ ternen Daten aufweisen kann, unverändert.If PartialExport true, the importing application processes all sub-objects, gene of the products contained in the import file ¬, and allows additional subobjects which it may have in their ternal in ¬ data unchanged.
Beispiel-Instanz-Fragment :Example instance fragment:
<ObjectA ID="1" PartialExport="true" ><ObjectA ID = "1" PartialExport = "true">
<ObjectB ID="2" Name="ObjectBl" PartialExport="false"> <ObjectC ID="3" Name="0bjectCl" /><ObjectB ID = "2" Name = "ObjectBl" PartialExport = "false"> <ObjectC ID = "3" Name = "0bjectCl" />
<ObjectD Name="ObjectDl" ID="4" /> </ObjectB> </ObjectA><ObjectD Name = "ObjectDl" ID = "4" /> </ ObjectB> </ ObjectA>
Dieses Beispiel bedeutet:This example means:
o ObjectA besitzt ein untergeordnetes ObjectBl und kann außerdem weitere untergeordnete Objekte aufweisen o ObjectB besitzt genau die untergeordneten Objekte Ob- jectCl und ObjectDl und keine weiteren untergeordneten Objekte .o ObjectA has a child ObjectBl and can also have other child objects o ObjectB has exactly the child objects ObjectCl and ObjectDl and no other child objects.
In bestimmten Fällen kann ein Objekttyp „dynamische Attribu¬ te" aufweisen, d.h. Attribute, die in einer Instanz dieses Typs präsent sein können oder auch nicht und die möglicherweise sogar während der Lebenszeit einer Instanz hinzugefügt oder gelöscht wurden. Bei einem solchen Szenario kann ein Objekt (das ein „Settings"-Merkmal mit solchen Attributen ent¬ hält) ein optionales Attribut „PartialAttribute" aufweisen. Genau wie das PartialExport-Attribut bezieht sich dieses Att¬ ribut auf das Objekt selbst und auf alle seine aggregierten Subelemente, wenn nicht ein Subobjekt sein eigenes Partial- Attributes-Attribut besitzt. An dem Wurzelobjekt hat das Att¬ ribut einen Vorgabewert von „true".In certain cases, an object type "dynamic Attribu ¬ te" exhibit, ie attributes that can be present in an instance of that type or not and possibly even added during the lifetime of an instance or deleted. In such a scenario, an object (which is a "Settings" feature with such attributes ent holds ¬) an optional "PartialAttribute" attribute include. Just like the PartialExport attribute refers this Att ¬ ribut to the object itself and on all of its aggregated sub-elements, if not a subobject his own partial Attributes attribute owns. At the root object that has Att ¬ ribut a default value of "true".
Wenn PartialAttributes false ist, nimmt die importierende Ap- plikation an, dass die Importdatei alle Attribute des Objekts enthält. Wenn das Objekt bereits existiert und zusätzliche dynamische Attribute enthält, sollten sie als gelöscht be¬ trachtet werden.If PartialAttributes is false, the importing application assumes that the import file contains all the attributes of the object. If the object already exists and contains additional dynamic attributes, they should be seeks as deleted be ¬.
Wenn PartialAttributes true ist, verarbeitet die importieren¬ de Applikation alle Attribute, die in der Importdatei präsent sind, und lässt zusätzliche Attribute, die sie in ihrem in¬ ternen Objekt aufweisen kann, unverändert.If PartialAttributes true, the import ¬ de application processes all attributes that are present in the import file, and allows additional attributes it may have in their ternal in ¬ object unchanged.
PartialAttributes ist für Attribute irrelevant, die nicht dy¬ namisch sind (die immer in der Objektinstanz präsent sind und nicht gelöscht werden können) . Die importierende Applikation lässt statische Attribute immer unverändert, wenn das Attri¬ but nicht in der Importdatei präsent ist.PartialAttributes is irrelevant to attributes that are not dy ¬ cally are (which are always present in the object instance and can not be deleted). The importing application can always static attributes unchanged when the Attrib ¬ but not present in the import file.
Beispiel :Example:
<ObjectB ID="2" Name="ObjectBl"><ObjectB ID = "2" Name = "ObjectBl">
<Settings PartialAttributes="true" > <Propertyl>ll</Propertyl><Settings PartialAttributes = "true"> <Propertyl> ll </ Propertyl>
<Property2>0.5</Property2> <Property3>3</Property3> </Settings><Property2> 0.5 </ Property2> <Property3> 3 </ Property3> </ Settings>
<ObjectC ID="3" Name="ObjectCl"> <Settings><ObjectC ID = "3" Name = "ObjectCl"> <Settings>
<PropertyA>ll</PropertyA> <PropertyB>0.5</PropertyB> </Settings> </ObjectC> </ObjectB> o ObjectB hat die Eigenschaften 1, 2 und 3 und möglicherweise weitere Attribute o ObjectC hat genau die Eigenschaften A und B und keine anderen (dynamischen) Attribute.<PropertyA> ll </ PropertyA><PropertyB> 0.5 </ PropertyB></Settings></ObjectC></ObjectB> o ObjectB has properties 1, 2, and 3 and possibly other attributes o ObjectC has exactly the properties A and B and no other (dynamic) attributes.
Wenn eine exportierende Applikation PartialExport oder Parti- alAttributes auf „true" setzt, muss sie über eine Möglichkeit verfügen, zu spezifizieren, dass ein Objekt oder Attribut durch den Import gelöscht werden sollte. (Einfach nur das ge- löschte Objekt nicht zu importieren, reicht nicht aus; die importierende Applikation würde einfach nur ihre internen Daten unverändert lassen) .If an exporting application sets PartialExport or PartialAttributes to "true", it must have a way to specify that an object or attribute should be deleted by importing (simply not importing the deleted object is sufficient) not enough, the importing application would just leave its internal data unchanged).
Zu diesem Zweck kann jedes Objekt und jedes dynamische Attri- but ein „Deleted"-Attribut führen.For this purpose, every object and every dynamic attribute can have a "Deleted" attribute.
Dieses Flag wird für Objekte durch XML@Profibus, aber nicht für Attribute definiert. Wenn eine Applikation dynamische Attribute aufweist (die löschbar sind) , muss das Schema ent- sprechende Typen deklarieren, wie in dem folgenden Beispiel:This flag is defined for objects by XML @ Profibus, but not for attributes. If an application has dynamic attributes (which are deletable), the schema must declare appropriate types, as in the following example:
Instanz :Instance:
<ObjectA ID="1" PartialExport="true" > <ObjectB ID="2" Name="0bjectBl"><ObjectA ID = "1" PartialExport = "true"> <ObjectB ID = "2" Name = "0bjectBl">
<Settings PartialAttributes="true"> <Propertyl Deleted="true" /> <Property2>0.6</Property2> </Settings> </ObjectB><Settings PartialAttributes = "true"> <Propertyl Deleted = "true" /> <Property2> 0.6 </ Property2> </ Settings> </ ObjectB>
<ObjectC ID="3" Name="ObjectCl" Deleted="true" /> </ObjectA> Schema :<ObjectC ID = "3" Name = "ObjectCl" Deleted = "true"/></ObjectA> Scheme:
<xsd: complexType name="ObjectBSettingsFeatureT"><xsd: complexType name = "ObjectBSettingsFeatureT">
<xsd: complexContent> <xsd: extension base="prim:FeatureT"> <xsd: sequence> <xsd: element name="Propertyl" type="Deletable_integer" minθccurs=" 0 " /><xsd: complexContent> <xsd: extension base = "prim: FeatureT"> <xsd: sequence> <xsd: element name = "Propertyl" type = "Deletable_integer" minθccurs = "0" />
<xsd: element name="Property2" type="xsd: double" minOccurs="0"/><xsd: element name = "Property2" type = "xsd: double" minOccurs = "0" />
<xsd: element name="Property3" type="xsd: integer minθccurs=" 0 " /> </xsd: sequence> </xsd: extension> </xsd: complexContent> </xsd: complexType><xsd: element name = "Property3" type = "xsd: integer minθccurs =" 0 "/> </ xsd: sequence> </ xsd: extension> </ xsd: complexContent> </ xsd: complexType>
<xsd: complexType name="Deletable_integer"> <xsd: simpleContent><xsd: complexType name = "Deletable_integer"> <xsd: simpleContent>
<xsd: extension base="xsd: integer"> <xsd: attribute name="Deleted" type="xsd:boolean" use="optional" default="false" /> </xsd: extension> </xsd: simpleContent> </xsd: complexType><xsd: extension base = "xsd: integer"> <xsd: attribute name = "Deleted" type = "xsd: boolean" use = "optional" default = "false" /> </ xsd: extension> </ xsd: simpleContent> </ xsd: complexType>
Wenn dieses Attribut auf „true" gesetzt wird, sollte die im¬ portierende Applikation das entsprechende Objekt oder Attri¬ but als gelöscht betrachten. Wenn das Objekt/Attribut nicht in der importierenden Applikation existiert, kann es igno- riert werden.If this attribute is set to "true", the transporting in ¬ application should the object or Attrib ¬ but regarded as canceled. If the object / attribute does not exist in the import application, it can be ignored.
Wenn das Deleted-Flag für ein Objekt oder Attribut gesetzt ist, ist es nicht notwendig, den vollen Inhalt des Elements in die Exportdatei zu schreiben. Es muss jedoch für die im- portierende Applikation möglich sein, das zu löschende Objekt oder Attribut zu identifizieren, so dass z.B. der Name und/oder die Idee eines Objekts angegeben werden sollte, so- wie etwaige applikationsspezifische Kennungen, die präsent sein können.If the deleted flag is set for an object or attribute, it is not necessary to write the full content of the element to the export file. However, it must be possible for the importing application to identify the object or attribute to be deleted, so that, for example, the name and / or the idea of an object should be specified; like any application-specific identifiers that may be present.
Wenn das Deleted-Flag in Verbindung mit auf false gesetztem PartialExport/PartialAttributes verwendet wird, sollte die importierende Applikation auch das entsprechende Objekt oder Attribut als gelöscht betrachten. Diese Verwendung wird je¬ doch nicht empfohlen, die exportierende Applikation sollte einfach nur das entsprechende Element nicht exportieren, um zu spezifizieren, dass es gelöscht wurde.If the Deleted flag is used in conjunction with PartialExport / PartialAttributes set to false, the importing application should also consider the corresponding object or attribute deleted. This use is per ¬ not recommended that the exporting application should simply not export the corresponding element to specify that it was deleted.
In vielen Szenarien kann der Benutzer wählen, entweder ein vollständiges Projekt oder nur einen Subbaum zu exportieren. In der Regel kann er ein Wurzelobjekt in der Baumansicht wäh- len und einen Export dieses Objekts und seiner Subelemente über ein (Kontext-) Menü starten. Normalerweise ist nicht je¬ des Objekt in einer Projekthierarchie als Wurzelobjekt sinn¬ voll, es sollten nur spezifische Typen für diesen Zweck gewählt werden.In many scenarios, the user may choose to either export a complete project or just a sub-tree. As a rule, he can select a root object in the tree view and start an export of this object and its subelements via a (context) menu. Is not normally ever ¬ the object in a project hierarchy as the root object meaningful ¬ full, it should only specific types can be selected for this purpose.
Um sicherzustellen, dass die importierende Applikation Zugang zu den vollständigen Kontextinformationen (d.h. der Namenhierarchie) besitzt, sollten auch die übergeordneten Objekte des gewählten Wurzelobjekts als „Hüllobjekte" in die Export- datei geschrieben werden.To ensure that the importing application has access to the complete context information (i.e., the name hierarchy), the parent objects of the selected root object should also be written to the export file as "shell objects".
<Document xmlns="http : //www. siemens . com/automation/SimaticML"><Document xmlns = "http: // www. Siemens.com/automation/SimaticML">
<ObjectA ID="1" Shellθbject="true"> <ObjectB ID="2" Name="0bjectBl"><ObjectA ID = "1" Shellθbject = "true"> <ObjectB ID = "2" Name = "0bjectBl">
<Settings><Settings>
<AttributeA>ll</AttributeA> <AttributeB>some content</AttributeB> <AttributeC>0.5</AttributeC> </Settings><AttributeA> ll </ AttributeA> <AttributeB> some content </ AttributeB> <AttributeC> 0.5 </ AttributeC> </ Settings>
</ObjectB> </ObjectA> </Document></ ObjectB></ObjectA> </ Document>
Zusätzlich zu der Einschränkung eines Exports über „Par- tialExport" oder dem Exportieren nur eines Subbaums kann es auch möglich sein, ein „Filter" auf einen Export anzuwenden. Im Prinzip bedeutet dies, dass nur Objekte spezifischer Typen in die XML-Datei geschrieben werden. Um ein solches „Filter" zu bezeichnen, kann das Projektelement ein „ExportScope"- Attribut führen.In addition to restricting export via "PartialExport" or exporting only a sub-tree, it may also be possible to apply a "filter" to an export. In principle, this means that only objects of specific types are written to the XML file. To designate such a "filter", the project element may carry an "ExportScope" attribute.
Dieses Dokument definiert keinen Mechanismus zum Formulieren solcher Filter. Es wird der exportierenden Applikation überlassen, zu bestimmen, ob z.B. Filter fest sind oder vom Benutzer definiert werden können oder ob ein Filter eine „Posi- tiv-Liste" exportierbarer Typen oder eine „Negativ-Liste" ge¬ filterter Typen ist.This document does not define a mechanism for formulating such filters. It is left to export the application to determine whether, for example filters are fixed or can be defined by the user or whether a filter is a "posi- tive list" exportable types or a "negative list" ge ¬-filtered types.
Vom Standpunkt des XML-Formats aus gesehen ist es nur wich¬ tig, dass das ExportScope-Attribut einen „Filter Name" ent- hält und dass die exportierende und importierende Applikation sich ein gemeinsames Verständnis über die durch diesen Namen beschriebenen Filtereigenschaften teilen.From the standpoint of the XML format, it is only more ¬ tig that the ExportScope attribute holds a "Filter Name" contains and that the exporting and importing application to share a common understanding of the described by that name filter characteristics.
Fig. 4 gibt ein Beispiel für die verschiedenen Möglichkeiten zum Einschränken eines Exports.Fig. 4 gives an example of the different ways to restrict an export.
Obwohl jedes XML-Format mit Langzeitstabilität als Ziel ent¬ wickelt werden sollte, ist es praktisch unausweichlich, dass ein Format möglicherweise während des Lebenszyklus eines Pro- dukts oder einer Komponente verändert werden muss. Die nach¬ folgend in diesem Kapitel beschriebenen Mechanismen können dabei helfen, dass eine solche Änderung handhabbar wird, es sollte jedoch beachtet werden, dass Widerstand gegen Format¬ änderungen hauptsächlich eine Frage der „robusten Implemen- tierung" eines Importmechanismus ist. Wenn zum Beispiel eine importierende Applikation während des Analysierens einer XML-Datei auf ein unbekanntes Element stößt, könnte sie zum Beispiel das Element falls möglich auf generische Weise behandeln, oder sie könnte wählen, es ein- fach zu ignorieren (und eine Warnung an den Benutzer auszugeben) . Sie darf aber in einer solchen Situation auf keinen Fall abstürzen und sollte den Importprozess nicht abbrechen.Although each XML format ent with long-term stability as a goal ¬ should be developed, it is virtually inevitable that a format may need to be changed domestic product or component during the life cycle of a product. The mechanisms described by ¬ following in this chapter can help to ensure that such a change is manageable, but it should be noted that resistance to format ¬ changes mainly "orientation robust imple-" a matter of an import mechanism. For example, if an importing application encountered an unknown element while parsing an XML file, it might, for example, treat the element in a generic way if possible, or it might choose to ignore it easily (and warn the user to spend). However, it must not crash in such a situation and should not abort the import process.
Wenn eine importierende Applikation ein erwartetes Element oder Attribut beim Analysieren einer XML-Datei nicht findet, sollte sie ähnlich versuchen, statt dessen Vorgabewerte zu verwenden .If an importing application does not find an expected element or attribute when parsing an XML file, it should similarly try to use default values instead.
Die genauen Anforderungen für die Versionierung einer Import- Export-Funktionalität können für jede Anwendung unterschied¬ lich sein, in der Regel ist es jedoch erwünscht, dass eine Anwendung nicht nur aktuelle XML-Dateien importieren kann, sondern auch Dateien, die einer vorherigen Version des XML- Formats entsprechen.The exact requirements for versioning an import export functionality can be different for each application ¬ Lich, in general, it is desirable, however, that an application not only current XML files can be imported, but also files that a previous version of XML format.
Ein bemerkenswerter Punkt ist die Rolle, die eine XML- Schemadatei in dem Gesamtexport-/-importprozess spielt. Eine XSD-Datei kann zwei verschiedene Zwecke aufweisen:One noteworthy point is the role an XML schema file plays in the overall export / import process. An XSD file can have two different purposes:
o Sie kann als eine Dokumentation eines Exportformats die¬ nen. Durch Bereitstellung eines Schemas kann die exportierende Applikation beschreiben, welche Art von XML- Instanzdateien sie erzeugt. Solche Dokumentation könnte auch als unstrukturierte Prosa bereitgestellt werden; die Verwendung von XSD hat den Vorteil einer formalen Sprache zur Beschreibung des Formats. Die Hauptadressa¬ ten dieses XSD sind ein menschlicher Leser, der normalerweise auch die Semantik des Formats verstehen muss, o Mit einer XSD-Datei kann man eine Menge von Anweisungen anhand einer XML-Instanzdatei prüfen. XSD ist nur eine Sprache zur Formulierung solcher Anweisungen (andere sind RelaxNG, Schematron oder sogar reguläre Ausdrücke) . Welche Anweisungen anhand einer spezifischen XML-Instanz getestet werden müssen, kann von dem Verbraucher der Instanz abhängen und kann sogar über die Verarbeitungskette des Verbrauchers hinweg variieren.o You can nen as a documentation of the export format ¬. By providing a schema, the exporting application can describe what kind of XML instance files it generates. Such documentation could also be provided as unstructured prose; the use of XSD has the advantage of a formal language for describing the format. The main addressees of this XSD are a human reader, who normally also has to understand the semantics of the format. O An XSD file can be used to check a set of statements using an XML instance file. XSD is just one language for formulating such statements (others are RelaxNG, Schematron, or even regular expressions). Which statements to test against a specific XML instance may depend on the instance's consumer and may even vary across the consumer's processing chain.
Im Kontext eines Export/Import hat ein Schema (sowie die im Verlauf des gesamten vorliegenden Dokuments gezeigten Schema- Fragmente) hauptsächlich den Zweck des Beschreibens des XML- Formats. Die Tatsache, dass die Instanzdateien auch anhand eines solchen Schemas validiert werden können, ist sekundär - dadurch alleine wird nicht garantiert, dass die Instanz er¬ folgreich importiert werden kann.In the context of an export / import, a schema (and the schema fragments shown throughout the present document) has the main purpose of describing the XML format. The fact that the instance files can be validated on the basis of such a scheme is secondary - this alone will not guarantee that the instance may be he ¬ successfully imported.
Änderungen an einem XML-Format können als „kompatibel" oder „inkompatibel" klassifiziert werden. Die Begriffe „kompati¬ bel" und „inkompatibel" werden im Folgenden wie in /XMLPB/ definiert verwendet. Eine kompatible Änderung ist z.B. das Hinzufügen von Elementen oder Attributen zu existierenden Objekten. Inkompatible Änderungen sind z.B. Löschen oder Umbe- nennen von Attributen oder strukturelle Änderungen.Changes to an XML format can be classified as "compatible" or "incompatible". The terms "kompati ¬ bel" and "incompatible" are used in the following as defined in / XMLPB /. A compatible change is, for example, the addition of elements or attributes to existing objects. Incompatible changes include deleting or renaming attributes or structural changes.
Wenn eine Applikation ihr XML-Format auf inkompatible Weise ändern muss, sollte sie den Namenraum ändern, um explizit die Kompatibilität mit dem vorherigen Format zu brechen. Für die- sen Zweck ist Monat und Jahr der Schema-Version Teil des Namenraums .If an application needs to change its XML format in an incompatible manner, it should change the namespace to explicitly break compatibility with the previous format. For this purpose, the month and year of the schema version is part of the namespace.
Gleichzeitig sollte auch die Versionsnummer des Schemas er¬ höht werden (typischerweise auf die nächste Hauptversionsnum- mer) .Simultaneously, the version number of the schema he ¬ should höht (typically mer to the next Hauptversionsnum-).
Eine einzige XML-Instanzdatei kann Elemente von verschiedenen Versionen, d.h. von verschiedenen Namenräumen kombinieren. Dies erlaubt einer importierenden Applikation - die nicht un- bedingt an der vollständigen Datei interessiert ist - zu bestimmen, ob sie durch eine inkompatible Änderung betroffen wird. Theoretisch kann dieser Mechanismus für jeden Elementtyp einzeln verwendet werden. Es wird jedoch empfohlen, ihn nur auf der Granularität der möglichen Wurzelobjekte für einen Export zu verwenden.A single XML instance file can combine elements from different versions, that is, from different namespaces. This allows an importing application - which is not necessarily interested in the full file - to determine if it is affected by an incompatible change. Theoretically, this mechanism can be used individually for each element type. However, it is recommended to use it only on the granularity of possible root objects for export.
Beispiel 1 :Example 1 :
In dem folgenden Beispiel ist eine inkompatible Änderung in dem Format für ObjectA aufgetreten und daher wurde der Namenraum aktualisiert. Das Format für das Subobjekt ObjectB ist jedoch unverändert. Da ObjectB auch als ein Wurzelobjekt für einen teilweisen Export verwendet werden kann, ist ein solcher teilweiser Export immer noch mit der vorherigen Version kompatibel. Deshalb kann es sinnvoll sein, den Namenraum für ObjectB (und alle seine Subelemente) unverändert zu lassen. Vollständiger Export:In the following example, an incompatible change has occurred in the format for ObjectA, and therefore the namespace has been updated. However, the format for the ObjectB subobject is unchanged. Since ObjectB can also be used as a root object for a partial export, such a partial export is still compatible with the previous version. Therefore, it may be useful to leave the namespace for ObjectB (and all its subelements) unchanged. Full export:
<Document xmlns="http : //www. siemens . com/automation/05/02/SimaticML/SW"<Document xmlns = "http://www.siemens.com/ automation / 05/02 / SimaticML / SW"
xmlns : vθl="http : //www. siemens . com/automation/04/12/SimaticML/ SW">xmlns: vθl = "http: // www. siemens.com / automation / 04/12 / SimaticML / SW">
<ObjectA ID="1"> (...)<ObjectA ID = "1"> (...)
<v01:ObjectB ID="2" Name="0bjectBl"><v01: ObjectB ID = "2" Name = "0bjectBl">
(...)(...)
</v01:ObjectB> </ObjectA> </Document></ v01: ObjectB> </ ObjectA> </ Document>
Export of sub-tree ObjectB:Export of sub-tree ObjectB:
<Document xmlns="http : //www. siemens . com/automation/04/12/SimaticML/SW"><Document xmlns = "http://www.siemens.com/automation/ 04/12 / SimaticML / SW">
<ObjectB ID="2" Name="ObjectBl"> (...)<ObjectB ID = "2" Name = "ObjectBl"> (...)
</ObjectB> </Document> Wenn die übergeordneten Objekte des relevanten Subbaums als Shell-Objekte exportiert werden (was typischerweise der Fall ist) , sollten diese Shell-Objekte auch in dem ursprünglichen Namenraum abgelegt werden. Andernfalls könnte sie möglicher¬ weise eine importierende Applikation nicht erkennen und wäre nicht in der Lage, zu dem relevanten Subbaum (ObjectB in dem Beispiel) zu navigieren</ ObjectB></Document> If the parent objects of the relevant subtree are exported as shell objects (which is typically the case), these shell objects should also be placed in the original namespace. Otherwise, they could possible ¬, an importing application does not recognize and would not be able to the relevant subtree (ObjectB in the example) to navigate
<Document xmlns="http : //www. siemens . com/automation/04/12/SimaticML/SW"> <ObjectA ID="1" Shellθbject="true" > <ObjectB ID="2" Name="ObjectBl"><Document xmlns = "http: //www.siemens.com/automation/ 04/12 / SimaticML / SW"> <ObjectA ID = "1" Shellθbject = "true"> <ObjectB ID = "2" Name = "ObjectBl ">
(...) </ObjectB> </ObjectA> </Document>(...) </ ObjectB> </ ObjectA> </ Document>
Beispiel 2 :Example 2:
In diesem Beispiel wird das Format für das Subobjekt ObjectB inkompatibel verändert, aber der Rest des XML-Formats (für die Objekte A, C usw.) bleibt unverändert. Es kann sinnvoll sein, nur einen aktualisierten Namenraum für den mit ObjectB beginnenden Subbaum zu verwenden. Dies kann vernünftig sein, wenn es wahrscheinlich ist, dass Exportdateien keine Instanzen von ObjectB enthalten (wenn es sich um ein optionales E- lement handelt) oder dass Import-Clients existieren, denen ObjectB egal ist. <Document xmlns="http : //www. siemens . com/automation/04/12/SimaticML/SW"In this example, the format for the ObjectB subobject is changed incompatible, but the rest of the XML format (for objects A, C, and so on) remains unchanged. It may be useful to use only an updated namespace for the subtree starting with ObjectB. This may be reasonable if it is likely that export files will not contain instances of ObjectB (if it is an optional element) or import clients that ObjectB does not care about. <Document xmlns = "http: // www. Siemens.com/automation / 04/12 / SimaticML / SW"
xmlns : vO2="http : //www. siemens . com/automation/05/02/SimaticML/ SW">xmlns: vO2 = "http: // www. siemens.com/automation/05/02/SimaticML/SW">
<ObjectA ID="1"><ObjectA ID = "1">
(...)(...)
<v02:ObjectB ID="2" Name="ObjectBl"><v02: ObjectB ID = "2" Name = "ObjectBl">
(...) </v02:ObjectB>(...) </ v02: ObjectB>
<ObjectC ID="3" ><ObjectC ID = "3">
(...)(...)
</ObjectC> </ObjectA> </Document></ ObjectC> </ ObjectA> </ Document>
Dieser Mechanismus des Kombinierens von Namenräumen sollte vorsichtig benutzt werden, da durch ihn sowohl die Instanzda¬ teien als auch die Schemadefinitionen zunehmend komplex und weniger lesbar werden. In den meisten Fällen wirkt sich eine inkompatible Änderung auf das vollständige Format aus, so dass alle Elemente gleichzeitig zu dem neuen Namenraum verla¬ gert werden sollten.This mechanism of combining namespaces should be used cautiously because by both him Instanzda ¬ parties and the schema definitions increasingly complex and less readable. In most cases, an incompatible change affects the whole format so that all the elements should be the same siege to the new namespace verla ¬.
Namenraumhierarchien:Namespace hierarchy:
Im Fall vernesteter Namenräume und Schemata bricht eine in¬ kompatible Änderung eines vernesteten Namenraums nicht die Kompatibilität von Instanzdateien, die dieses bestimmte Sub- System nicht benutzen. Fig. 5 zeigt ein Beispiel.In the case verne Teter namespaces and schemas in a compatible ¬ change does not break a nested namespace compatibility instance files that do not use that particular sub-system. Fig. 5 shows an example.
o Der Namenraum für das SW-Schema wird verändert, um Kom¬ patibilität zu brechen o Die Schema-Dateien, die das SW-Schema importieren, müs- sen angepasst werden, behalten aber ihren Namenraum o Instanzdateien, die keine SW-relevanten Elemente enthalten, entsprechen sowohl dem alten als auch dem neuen Schema o Applikationen, die nicht an SW-bezogenen Elementen inte- ressiert sind, müssen an eine neue Version angepasst werdenbe o The namespace for the SW scheme is changed to patibility Kom ¬ to break o The schema files which import the SW schema müs- adapted sen, but retain their namespace o Instance files that do not contain SW-relevant elements correspond to both the old and the new schema. o Applications that are not interested in SW-related elements must be adapted to a new version
Im Fall einer kompatiblen Änderung wird nur die Versionsnummer des XML-Formats erhöht (typischerweise auf die nächste Minor-Versionsnummer) , der Namenraum bleibt unverändert. Wie durch XML@Profibus definiert ist die Versionsnummer Teil des Dokumentkopfteils in jeder Instanzdatei sowie einer XML- Schemadatei :In the case of a compatible change, only the version number of the XML format is increased (typically to the next minor version number), the name space remains unchanged. As defined by XML @ Profibus, the version number is part of the document header in each instance file as well as an XML schema file:
Instanz :Instance:
<Document xmlns="http : //www. siemens . com/automation/04/12/SimaticML/SW"><Document xmlns = "http://www.siemens.com/automation/ 04/12 / SimaticML / SW">
<prim: Documentlnfo Version=" 0.04 "> <prim:Created Tool="PCS7" User="np" Times- tamp="2004-ll-09T08:52:37"/><prim: DocumentInfo Version = "0.04"> <prim: Created Tool = "PCS7" User = "np" Timesamp = "2004-ll-09T08: 52: 37" />
</prim: Documentlnfo></ prim: DocumentInfo>
<ObjectA ID="1"><ObjectA ID = "1">
(...) </ObjectA>(...) </ ObjectA>
</Document> Schema:</ Document> Scheme:
<xsd : schema targetName- pace="http : //www. siemens . com/automation/2004/12/SimaticML" xmlns :xsd="http: //www.w3. org/2001/XMLSchema"<xsd: schema targetName- pace = "http://www.siemens.com/automation/2004/12/SimaticML" xmlns: xsd = "http: //www.w3.org/ 2001 / XMLSchema"
xmlns :prim="http : //www.profibus . com/Common/2003/ll/Primitivesxmlns: prim = "http: //www.profibus.com / Common / 2003 / ll / Primitives
II version=" 0 . 04 " >II version = "0. 04">
<xsd:import names- pace="http : //www.profibus . com/Common/2003/ll/Primitives" schemaLocation="Common-Primitives-vl .0. xsd" /> <xsd: element name="Document " type="prim:DocumentT" /> (...)<xsd: import names- pace = "http: //www.profibus.com / Common / 2003 / ll / Primitives" schemaLocation = "Common-Primitives-vl .0. xsd"/><xsd: element name = "Document" type = "prim: DocumentT"/> (...)
<xsd: schema><xsd: schema>
Auf der Basis dieser Versionsnummer kann die importierende Applikation bestimmen, wie der Import durchzuführen ist.Based on this version number, the importing application can determine how to perform the import.
o Wenn der Versionsnummer kleiner als die „aktuelle Versi- on" die Applikation ist, könnte sie eine Transformation aufrufen oder die Importroutinen anpassen, um das alteo If the version number is smaller than the "current version" of the application, it could invoke a transformation or adapt the import routines to the old one
Datenformat zu behandeln (es kann ausreichen, für in derData format to handle (it may be sufficient for in the
Importdatei fehlende Attribute Vorgabewerte zu liefern) .Import file missing attributes default values to deliver).
o Wenn die Versionsnummer größer oder gleich der erwarteten Version ist, kann sich die Applikation darauf verlassen, dass die Datei alle erwarteten Elemente im er¬ warteten Format enthält, muss aber darauf vorbereitet sein, auf kompatible Erweiterungen (z.B. zusätzliche Attribute oder Elemente) zu stoßeno If the version number is greater than or equal to the expected version, the application can rest assured that the file contains all the expected elements in it ¬ waited format, but must come to be prepared to compatible enhancements (additional eg elements or attributes)
Gemäß XML@Profibus kann jedes Objekt in einer XML-Exportdatei ein optionales Versions-Attribut führen. Mit diesem Attribut kann eine exportierende Applikation die „Projekt-Versions- nummer" dieses Objekts in die interne Datenrepräsentation schreiben .According to XML @ Profibus, every object in an XML export file can carry an optional version attribute. With this attribute, an exporting application can write the "project version number" of this object in the internal data representation.
Dies kann besonders signifikant sein, wenn eine Applikation mehrere Versionen von Objekten in einem Projekt handhaben kann. (Eine Besprechung von Versionsmechanismen innerhalb einer Applikation und ihrer Datenrepräsentation sprengt jedoch den Rahmen dieses Dokuments) .This can be particularly significant when an application can handle multiple versions of objects in a project. (A discussion of versioning mechanisms within an application and its data representation, however, is beyond the scope of this document).
Es muss angemerkt werden, dass das XML-Format für Instanzen desselben Typs in derselben Datei identisch sein (d.h. demselben Schema entsprechen) muss, auch wenn ihre Datenversion unterschiedlich ist. Anders ausgedrückt erzeugt ein XML- Export immer eine Exportdatei, die einer bestimmten Version entspricht, auch wenn die interne Datenrepräsentation Objekte verschiedener Versionen enthalten kann.It must be noted that the XML format for instances of the same type in the same file must be the same (that is, the same schema), even if their data version is different. In other words, an XML Always export an export file that corresponds to a specific version, even if the internal data representation can contain objects of different versions.
Bestimmte Objekte können zusätzlich „Versions-Information", z.B. etwas wie „Firmware-Version" oder eine Versionsnummer, die frei vom Benutzer angegeben wurde, führen. Vom Standpunkt des Export/Import und des XML-Formats aus gesehen wird ein solches Attribut genau wie jedes andere Objektattribut behan- delt (wie z.B. ein Kommentarfeld) und wird in dem „Settings"- Merkmal des Objekts gespeichert.Certain objects may additionally carry "version information", e.g., something like "firmware version" or a version number specified by the user. From the standpoint of export / import and XML format, such an attribute is treated just like any other object attribute (such as a comment field) and is stored in the object's "settings" feature.
Das folgende Instanzfragment zeigt Beispiele für alle Arten von Versionsinformationen:The following instance fragment shows examples of all types of version information:
<Document xmlns="http : //www. siemens . com/automation/2004/12/SimaticML"<Document xmlns = "http: // www. Siemens.com / automation / 2004/12 / SimaticML"
xmlns :prim="http : //www.profibus . com/Common/2003/ll/Primitives ">xmlns: prim = "http: //www.profibus.com / Common / 2003 / ll / Primitives">
<prim: Documentlnfo Version=" 0.04 "><prim: DocumentInfo Version = "0.04">
<prim:Created Tool="notepad" User="np3304" "/> </prim: Documentlnfo> <ObjectA ID="1" Version="6.1"> <ObjectB ID="2" Name="ObjectBl"><prim: Created Tool = "notepad" User = "np3304" "/> </ prim: DocumentInfo> <ObjectA ID =" 1 "Version =" 6.1 "> <ObjectB ID =" 2 "Name =" ObjectBl ">
<Settings><Settings>
<Propertyl>ll</Propertyl> <Property2>0.5</Property2> <UserVersion>17</UserVersion> </Settings><Propertyl> ll </ Propertyl> <Property2> 0.5 </ Property2> <UserVersion> 17 </ UserVersion> </ Settings>
</ObjectB> </ObjectA> </Document></ ObjectB> </ ObjectA> </ Document>
Eine Exportdatei kann möglicherweise nur Teile eines Projekts enthalten. Deshalb ist es möglich, dass sich eine Relation eines exportierten Objekts auf ein Objekt bezieht, das nicht Teil des Exports ist.An export file may only contain parts of a project. That is why it is possible that a relation an exported object to an object that is not part of the export.
Das folgende Diagramm zeigt ein Beispiel; die Relation zwi- sehen „TH 2" und „Cfc 1" kann sowohl in Export 1 als auch in Export 2 nur als eine „externe Referenz" exportiert werden. Es ist notwendig, dass eine importierende Applikation die Re¬ lation nach dem Import von Exportl und Export2 neu erzeugen kann, wobei die Reihenfolge der teilweisen Importe nicht re- levant sein muss.The following diagram shows an example; the relationship between "TH 2" and "Cfc 1" can only be exported as an "external reference" in both Export 1 and Export 2. It is necessary for an importing application to initiate the re ¬ lation after the import of Exportl and Export2 can generate new, whereby the order of the partial imports does not have to be relevant.
Beim Import einer externen Referenz muss die importierende Applikation in der Lage sein, die Referenz korrekt aufzulösen, insbesondere, wennWhen importing an external reference, the importing application must be able to correctly resolve the reference, especially if
o das referenzierte Objekt bereits existiert (z.B. auf¬ grund eines vorherigen Imports) odero the referenced object already exists (for example, on the basis of a previous import ¬) or
o das referenzierte Objekt über einen nachfolgenden (teil- weisen) Import vollständig erzeugt wird.o the referenced object is completely generated via a subsequent (partial) import.
Zur Identifikation des Zielobjekts sollten dieselben Mechanismen wie für jedes andere importierte Objekt verfügbar sein. Zu diesem Zweck wird das Zielobjekt als „Hüllobjekt" exportiert, das heißt, es wird als ein „Platzhalter" ohne seinen Inhalt (Einstellungen, untergeordnete Objekte und an¬ dere Beziehungen) in die Exportdatei geschrieben. Ein solches Hüllobjekt führt seine vollständige Namenhierarchie in einem „Path"-Attribut zusätzlich zu dem lokalen Namen (so dass die importierende Applikation Zugang zu der vollen Namenhierarchie hat)To identify the target object, the same mechanisms should be available as for any other imported object. To this end, the target object as "envelope object" is exported, that is, it is written as a "placeholder" without its contents (attitudes, child objects and wider at ¬ relations) in the export file. Such a shell object maintains its full name hierarchy in a "path" attribute in addition to the local name (so that the importing application has access to the full name hierarchy).
Die „externe" Relation kann nun genau wie eine interne Rela¬ tion in XML geschrieben werden, weil sowohl das Quellen- als auch das Zielobjekt eine Repräsentation in der XML-Datei be¬ sitzen . <ObjectA ID="1">The "external" relation can now just like an internal Real ¬ tion are written in XML, because both the source and the target object is a representation in the XML file be ¬ sit. <ObjectA ID = "1">
<ObjectC Name="ObjectD3" ID="3"> <Relations><ObjectC Name = "ObjectD3" ID = "3"> <Relations>
<RelatesTo Target="#4"/> <ObjectB Name=" ObjectBl" ID="4"<RelatesTo Target = "# 4" /> <ObjectB Name = "ObjectBl" ID = "4"
Path="ObjectA" Shel- 10bject="true">Path = "ObjectA" Shel- 10bject = "true">
<prim:AppId AppName=" SIMATIC" Value="000200lEl0000002"/> <prim:AppId AppName="OtherTool"<prim: AppId AppName = "SIMATIC" Value = "000200lEl0000002" /> <prim: AppId AppName = "OtherTool"
Value="0815"/>Value = "0815" />
</ObjectB> </RelatesTo> </Relations> </ObjectC></ ObjectB> </ RelatesTo> </ Relations> </ ObjectC>
</ObjectA></ ObjectA>
Wenn mehrere Instanzen in eine Datei mit derselben externen Instanz in Beziehung stehen, schreibt jede Relation ihr eige- nes Shell-Objekt. Diese Shell-Objekte besitzen ihre eigene eindeutige ID (um sicherzustellen, dass die ID innerhalb ei¬ ner Datei einmalig ist) , beziehen sich aber auf dasselbe Zielobjekt (d.h. zeigen auf denselben Namen, Path und dieselben Appld' s) . If multiple instances in a file are related to the same external instance, each relation writes its own shell object. Have these shell objects its own unique ID (to ensure that the ID within ei ¬ ner file is unique), but refer to the same target object (ie, point to the same name, path and the same Appld 's).
<Device><Device>
<DeviceItem> <Charts><DeviceItem> <Charts>
<CFC Name="Motor" ID="DT000100lAl0000624" Ver- sion="V6.1"><CFC Name = "Motor" ID = "DT000100lAl0000624" Version = "V6.1">
<prim:AppId AppName=" SIMATIC" Value="DT000100lAl0000624" /> <Settings /> <Relations> <PlantHierarchy Target="#12" ><prim: AppId AppName = "SIMATIC" Value = "DT000100lAl0000624" /> <Settings /> <Relations> <PlantHierarchy Target = "# 12">
<PlantHierarchyFolder Name="GF34_Befuellen" ID=" 12"<PlantHierarchyFolder Name = "GF34_Four" ID = "12"
Path="Rubi_AS2_Prj/Rubin/MB3101" Shellθbject="true">Path = "Rubi_AS2_Prj / Ruby / MB3101" Shellθbject = "true">
<prim:AppId AppName=" SIMATIC"<prim: AppId AppName = "SIMATIC"
Value="OD01101071: 00000029: 00000000: 00000000" />Value = "OD01101071: 00000029: 00000000: 00000000" />
<prim:AppId AppName="OtherTool" Value="0816" /> </PlantHierarchyFolder><prim: AppId AppName = "OtherTool" Value = "0816" /> </ PlantHierarchyFolder>
</PlantHierarchy> </Relations> </CFC></ PlantHierarchy> </ Relations> </ CFC>
<CFC Name="Motorl" ID="DT000100lAl0000625" Ver- sion="V6.1"><CFC Name = "Motorl" ID = "DT000100lAl0000625" Version = "V6.1">
<prim:AppId AppName=" SIMATIC" Value="DT000100lAl0000625" /> <Settings /> <Relations> <PlantHierarchy Target="#13" ><prim: AppId AppName = "SIMATIC" Value = "DT000100lAl0000625" /> <Settings /> <Relations> <PlantHierarchy Target = "# 13">
<PlantHierarchyFolder Name="GF34_Befuellen" ID=" 13"<PlantHierarchyFolder Name = "GF34_Four" ID = "13"
Path="Rubi_AS2_Prj/Rubin/MB3101" Shellθbject="true">Path = "Rubi_AS2_Prj / Ruby / MB3101" Shellθbject = "true">
<prim:AppId AppName=" SIMATIC" Value="OD01101071: 00000029: 00000000: 0000000 /><prim: AppId AppName = "SIMATIC" Value = "OD01101071: 00000029: 00000000: 0000000 />
<prim:AppId AppName="OtherTool" Value="0816" /> </PlantHierarchyFolder> </PlantHierarchy> </Relations><prim: AppId AppName = "OtherTool" Value = "0816" /> </ PlantHierarchyFolder> </ PlantHierarchy> </ Relations>
</CFC> </Charts> </DeviceItem> </Device></ CFC> </ Charts> </ DeviceItem> </ Device>
Zusammengefasst betrifft die Erfindung somit ein Verfahren sowie ein System zur Synchronisation von Daten zwischen Applikationen, bei welchem die Daten zumindest teilweise zwischen den Applikationen ausgetauscht werden, wobei die ausge- tauschten Daten mit in der jeweiligen Applikation vorhandenen Daten synchronisiert werden. Um die Synchronisation zu vereinfachen, wird vorgeschlagen, dass den Daten eine Kennzeichnung für eine Unvollständigkeit zugeordnet wird. In summary, the invention thus relates to a method and a system for the synchronization of data between applications, in which the data is at least partially exchanged between the applications, the exchanged data being synchronized with data present in the respective application. To simplify the synchronization, it is proposed that an incomplete tag be mapped to the data.

Claims

Patentansprüche claims
1. Verfahren zur Synchronisation von Daten zwischen Applikationen, bei welchem die Daten zumindest teilweise zwischen den Applikationen ausgetauscht werden, wobei die ausgetauschten Daten mit in der jeweiligen Applikation vorhandenen Daten synchronisiert werden, wobei den Daten eine Kennzeichnung für eine Unvollständigkeit zugeordnet wird.1. A method for synchronizing data between applications, wherein the data is at least partially exchanged between the applications, wherein the exchanged data is synchronized with existing data in the respective application, wherein the data is assigned an identifier for an incompleteness.
2. Verfahren nach Anspruch 1, bei welchem die Daten zumindest teilweise in Form von Hüllobjekten übertragen werden, wobei die Hüllobjekte Attribute zur Identifikation aufweisen, wobei die Hüllobjekte nur Teile eines vollständigen Objekts aufwei¬ sen .2. The method of claim 1, wherein the data is at least partially transmitted in the form of Hüllobjekten, wherein the shell objects have attributes for identification, wherein the shell objects sen only part of a complete object aufwei ¬.
3. Verfahren nach Anspruch 1 oder 2, bei welchem die Daten in einer erweiterbaren Kennzeichnungssprache beschrieben sind.The method of claim 1 or 2, wherein the data is described in an extensible tagging language.
4. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem beim Import von Daten die Art von Datenänderungen mittels einer Versionskennzeichnung erkannt werden und abhängig von der Versionskennzeichnung eine generische Reaktion erfolgt .4. The method according to any one of the preceding claims, wherein when importing data, the type of data changes are detected by means of a version identifier and depending on the version identifier, a generic reaction takes place.
5. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem im Fall bereits synchronisierter Daten bei späteren Synchronisationen nur die Änderungen ausgetauscht werden.5. The method according to any one of the preceding claims, wherein in the case of already synchronized data at later synchronizations only the changes are exchanged.
6. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem beim Export von Daten ein Wurzelobjekt ausgewählt wird, ab dem alle Objekte exportiert werden.6. The method according to any one of the preceding claims, wherein when exporting data, a root object is selected, from which all objects are exported.
7. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem Filtereinstellungen definiert werden und abhängig von den Filtereinstellungen eine Auswahl der auszutauschenden Daten erfolgt . 7. The method according to any one of the preceding claims, wherein filter settings are defined and, depending on the filter settings, a selection of the data to be exchanged.
8. System zur Synchronisation von Daten zwischen Applikationen, wobei Daten zumindest teilweise zwischen den Applikatio¬ nen austauschbar sind, wobei Synchronisationsmittel zur Syn¬ chronisierung der ausgetauschten Daten mit in der jeweiligen Applikation vorhandenen Daten vorgesehen sind, wobei den Daten eine Kennzeichnung für eine Unvollständigkeit zuordenbar ist .8. A system for synchronization of data between applications, wherein data nen at least partially between the Applikatio ¬ are interchangeable, wherein synchronization means for Syn ¬ chronisation of the data exchanged with existing in the respective application data, said data an identifier for an incompleteness assignable is.
9. System nach Anspruch 8, d a d u r c h g e k e n n z e i c h n e t , dass Hüllobjekte vorgesehen sind, wobei die Daten zumindest teilweise in Form der Hüllobjekte übertragbar sind, wobei die Hüllobjekte Attribute zur Identifikation aufweisen, wobei die Hüllobjekte nur Teile eines vollständigen Objekts aufweisen.9. System according to claim 8, characterized in that envelope objects are provided, the data being transferable at least partially in the form of the envelope objects, the envelope objects having attributes for identification, the envelope objects having only parts of a complete object.
10. System nach Anspruch 8 oder 9, d a d u r c h g e k e n n z e i c h n e t , dass die Daten in einer erweiterbaren Kennzeichnungssprache beschreibbar sind.10. System according to claim 8 or 9, characterized in that the data in an extensible labeling language can be described.
11. System nach einem der Ansprüche 8 bis 10, d a d u r c h g e k e n n z e i c h n e t , dass Versionskennzeichnungen zur Kennzeichnung von Datenänderungen vorgesehen sind, wobei die Versionskennzeichnungen zum Auslösen einer generischen Reaktion beim Import der Daten vorgesehen sind.11. The system of claim 8, wherein version identifiers are provided for characterizing data changes, wherein the version identifiers are provided for triggering a generic reaction upon import of the data.
12. System nach einem der Ansprüche 8 bis 11, d a d u r c h g e k e n n z e i c h n e t , dass Wurzelobjekte vorgesehen sind, welche beim Export von12. System according to one of claims 8 to 11, characterized in that there are provided root objects, which in the export of
Daten den Punkt angeben, ab dem alle Objekte exportiert wer¬ den . Data indicating the point from which all objects exported ¬ to.
13. System nach einem der Ansprüche 8 bis 12, d a d u r c h g e k e n n z e i c h n e t , dass Filtereinstellungen vorgesehen sind und abhängig von den Filtereinstellungen eine Auswahl der auszutauschenden Daten erfolgt . 13. The system according to claim 8, wherein filter settings are provided and, depending on the filter settings, a selection of the data to be exchanged takes place.
EP06725635A 2005-04-11 2006-04-07 Synchronisation of data Withdrawn EP1869548A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005016690A DE102005016690A1 (en) 2005-04-11 2005-04-11 Synchronization of data
PCT/EP2006/061423 WO2006108801A2 (en) 2005-04-11 2006-04-07 Synchronisation of data

Publications (1)

Publication Number Publication Date
EP1869548A2 true EP1869548A2 (en) 2007-12-26

Family

ID=36617332

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06725635A Withdrawn EP1869548A2 (en) 2005-04-11 2006-04-07 Synchronisation of data

Country Status (4)

Country Link
US (1) US8032893B2 (en)
EP (1) EP1869548A2 (en)
DE (1) DE102005016690A1 (en)
WO (1) WO2006108801A2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2008202631A1 (en) * 2007-06-14 2009-01-08 Aristocrat Technologies Australia Pty Ltd Translating XML with multiple namespace extensions
CN102143193B (en) * 2010-01-29 2014-01-22 国际商业机器公司 Data synchronization method and system
US9038024B2 (en) * 2012-09-07 2015-05-19 Sap Se Development of process integration scenarios on mobile devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149813B2 (en) 2001-08-14 2006-12-12 Microsoft Corporation Method and system for synchronizing mobile devices
US7836103B2 (en) * 2002-11-18 2010-11-16 Siebel Systems, Inc. Exchanging project-related data between software applications
US7308458B2 (en) * 2003-06-11 2007-12-11 Wtviii, Inc. System for normalizing and archiving schemas
US7620658B2 (en) * 2003-09-24 2009-11-17 Microsoft Corporation Configuration of a directory system
US7882146B2 (en) * 2003-12-01 2011-02-01 Microsoft Corporation XML schema collection objects and corresponding systems and methods
US7757220B2 (en) * 2004-10-21 2010-07-13 Discovery Machine, Inc. Computer interchange of knowledge hierarchies

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2006108801A2 *

Also Published As

Publication number Publication date
US20090217312A1 (en) 2009-08-27
US8032893B2 (en) 2011-10-04
WO2006108801A3 (en) 2007-05-10
DE102005016690A1 (en) 2006-10-12
WO2006108801A2 (en) 2006-10-19

Similar Documents

Publication Publication Date Title
EP1258812B1 (en) Virtual database of heterogeneous data structures
DE60002876T2 (en) PRESENTATION, ADMINISTRATION AND SYNTHESIS OF TECHNICAL CONTENT
DE10308725A1 (en) System and method for managing and exchanging data of a technical project, a technical system and individual system components
EP1638028A2 (en) Computer aided generation and change management for user interfaces
DE202013012490U1 (en) Efficient hierarchical top-down connection clustered data stream
EP1559031A2 (en) Upward and downward compatible schema evolution
DE102012001406A1 (en) Automatic configuration of a product data management system
WO2006108801A2 (en) Synchronisation of data
DE102016005519B4 (en) Method for creating a metadata data model for a BI infrastructure
DE4308291C2 (en) Method and device for process-related creation and processing of documents
EP1202166A1 (en) System for verification of software application models in strings of software development tools
EP1515207A1 (en) Automatisation object and method for description of an automatisation object using a metalanguage
DE102010064167A1 (en) Method for generating dynamic report for representing commercial data for selected articles in e.g. database management system oracle in computer system, involves generating report by using report template and adjusted database statements
Pietranek Datenmanagementpatterns in multi-skalaren Simulationsworkflows
EP1285315B1 (en) Information processing system and method for operation thereof
WO2000007116A1 (en) Method, arrangement and set of a plurality of arrangements for remedying at least one inconsistency in a group of databases which comprises a database and at least one copy database of the database
EP2757466B1 (en) A computer implemented method for generating computer program code
EP1234231B1 (en) Method for generating graphical user interfaces for computer programs
DE102010010035A1 (en) Method for construction of objects e.g. control box, of object oriented database, involves generating objects with containment relations and single relations, and replacing placeholders by appropriate reciprocal relations
WO2004040469A1 (en) Management of data described with an extensible markup language
Finkes A hierarchical Eclipse-based editor for system dependency graphs
DE10109876B4 (en) Method and device for data management
DE19858163A1 (en) Transmission of data between data bases in a client based network using an electronic management system
EP3770769A1 (en) Method for querying or processing a complete file by means of a query language and device for managing said method
EP1556755A1 (en) Structuring, storing and processing of data according to a generic object model

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20071001

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): DE FR GB IT

17Q First examination report despatched

Effective date: 20080124

RIN1 Information on inventor provided before grant (corrected)

Inventor name: LANGE, RONALD

Inventor name: NIEDERHUBER, PETER

Inventor name: BANIK, THOMAS

Inventor name: POHLAN, RUDOLF

Inventor name: BITZER, RAINER

Inventor name: HELLER, RAINER

DAX Request for extension of the european patent (deleted)
RBV Designated contracting states (corrected)

Designated state(s): DE FR GB IT

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20080604