Współdzielenie danych XML jest założone na architekturze
Klient-Server, tzn. tylko jedna aplikacja (Web serwer) posiada dane i jedna lub więcej aplikacji (Web klienci) te dane odczytują lub zapisują.
aplikacja PROMOTIC potrafi być jak Web serwerem tak i Web klientem danych XML.
PROMOTIC Web serwer danych XML wytwarza się przy pomocy obiektu
PmaData (oraz jego karty "
Web serwer") lub przy pomocy obiektu
PmaDataTable (oraz jego karty "
Web serwer"). Obiekt
PmaData/
PmaDataTable w tym przypadku przedstawia Web komponent. W danej aplikacji jeszcze jest konieczne znajdować się obiekt
PmaWeb, który wszystkie Web komponenty aplikacji oferuje jako jeden Web serwer, patrz
Podsumowanie technologii Web w systemie PROMOTIC.
PROMOTIC Web klient danych XML wytwarza się również przy pomocy obiektu
PmaData/
PmaDataTable i jego metod
ReadFromWeb oraz
WriteToWeb. Jeżeli aplikacja ma być tylko Web klientem, wtedy obiekt
PmaWeb nie musi znajdować się w aplikacji.
Takim sposobem mogą dwie aplikacje PROMOTIC w prosty sposób wymieniać dane w czasie rzeczywistym. Obiekty
PmaData muszą w obu (lub więcej) aplikacjach zawierać takie same zmienne, zdefiniowane w karcie "
Dane".
Przykład aplikacji patrz
Przykład komunikacji przy pomocy XML.
Obiekt
PmaDataTable może dynamicznie zmieniać ilość danych w nim zawartych przy pomocy metod
InsertRow,
RemoveRow,
InsertCol lub
RemoveCol.
W transmisji XML jednak z powodów bezpieczeństwa nie można automatycznie zmieniać ilość danych! Jeżeli jest konieczne na przykład w aplikacji klienckiej zmienić ilość danych tak, żeby była taka sama jak na serwerze, wtedy jest najpierw konieczne stwierdzić ilość wierszy na serwerze (np. stwierdzeniem XML przez obiekt
PmaData), następnie wykonać zmianę przy pomocy wyżej wymienionych metod i dopiero potem wywołać metodę
ReadFromWeb.
Komunikacja XML wspiera pomiędzy obiektami
PmaData transmisję hierarchicznym sposobem. Pod tym określeniem mamy na myśli to, że w obiekcie
PmaData nie muszą się znajdować wyłącznie proste zmienne (jakimi są
Integer,
Single, itd.) lecz na tej pozycji może być również
odniesienie do danych innego obiektu PmaData. Zważmy przykład, gdzie 1. pozycja obiektu
/Data/DataA odnosi się do danych obiektu
/Data/DataB (obiekt
DataA i
DataB są typu
PmaData). Wtedy 1. pozycja obiektu
DataA musi być typu
Object i ustawiona na przykład przez polecenie skryptowe:
JavaScriptVBScriptWybierz oraz skopiuj do schowka
pMe.Pm("/Data/DataA").Item(1) = pMe.Pm("/Data/DataB");
Set pMe.Pm("/Data/DataA").Item(1) = pMe.Pm("/Data/DataB")
lub zamiast tego można na 1. pozycji wytworzyć powiązanie danych
PP Właściwość Pma obiektu lub jego obiektu podrzędnego (Ini Przy inicjalizacji właściwości). W tym powiązaniu
PP wypełnij ścieżkę do obiektu
DataB lecz pozycję do wprowadzania właściwości pozostaw pustą. W ten sposób będzie 1. pozycja obiektu
DataA połączona bezpośrednio z obiektem
DataB.
Jeżeli serwer i klient będą mieć oby dwa te obiekty ustawione tak samo, wtedy można przy jednym przeniesieniem zawartości obiektu
DataA przenieść także zawartość obiektu
DataB. Taka koncepcja jest zalecana wtedy, jeżeli w aplikacji znajduje się kilka obiektów
PmaData, lecz chcesz przenosić dane pomiędzy wszystkimi jednocześnie w jednej wiadomości.
Poza tym Web klientem może być również na przykład
strona HTML przeglądana przy pomocy przeglądarki internetowej (
Chrome,
Firefox,
Edge,
InternetExplorer ...). W tym przypadku można zastosować na stronie HTML
tag <xml>, który umożliwia odczyt danych XML z Web serwera. Można również wykorzystać dynamiczne strony HTML które potrafi odczytywać i zapisywać do danych.