Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_prolog_xml:przyklad [2008/06/02 00:07]
miw
pl:miw:miw08_prolog_xml:przyklad [2008/06/02 19:58]
miw
Linia 1: Linia 1:
-===== Przykład ===== 
  
- 
- 
- 
- 
-==== Tworzenie korzenia ==== 
-Korzen dokumentu xml tworzymy wykorzystując predykat: 
-<code prolog> 
-create_root(Name,​ID_name). 
-</​code>​ 
-Jako parametry podajemy kolejno: 
-  * nazwę korzenia 
-  * prefiks id, np. podając **cd**, zostanie stworzony **id=cd_0** gdzie **0** będzie kolejno nadawaną liczbą, startując od zera. 
- 
-Po użyciu tego predykatu pojawi się nam główny element struktury prologowej stanowiący korzeń dokumentu xml. 
- 
-Przykład: 
-<code prolog> 
-?- create_root(hml,​hml). 
- 
-Yes 
-?- listing(element). 
- 
-:- dynamic element/3. 
- 
-element(hml,​ [id=hml_0], []). 
-</​code>​ 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
-==== Dodawanie dzieci ==== 
-Dzieci do istniejących rodziców dodaje się za pomocą predykatu: ​ 
-<code prolog> 
-app_child(Parent,​P_id,​Child,​ChildIdName). 
-</​code>​ 
-W predykacie tym jako argumenty podajemy kolejno: 
-  * Nazwę rodzica 
-  * Id rodzica - jeśli istnieje wiele elementów o tej samej nazwie, podajemy id rodzica, jeśli nie jest ważne do którego rodzica chcemy dodać dziecko wpisujemy "​_"​ 
-  * Nazwa dziecka 
-  * prefix nazwy id dziecka; Podając **ala** zostanie stworzony prefik **ala_**, któremu automatycznie zostanie przydzielona kolejna liczba, np. **ala_1**. 
-A więc dodanie dziecka o nazwie **//​type_set//​** i id **//​typ_s//​** do rodzica **//hml//** (korzeń) 
-<code prolog> 
-?- app_child(hml,​_,​type_set,​typ_s). 
-</​code>​ 
-Powstaje następująca struktura, korzeń **//hml//** ma na liście dziecko **//​type_set//​** z id o podanym prefiksie i przydzielonym numerze. 
-<code prolog> 
-element(hml,​ [id=hml_0], [element(type_set,​ [id=typ_s_0],​ [])]). 
-</​code>​ 
- 
-W podobny sposób dodajemy dzieci: 
-  * attribute_set <code prolog> ?- app_child(hml,​_,​attribute_set,​att_s). </​code>​ 
-  * property_set <code prolog> ​ ?- app_child(hml,​_,​property_set,​prp_s). </​code>​ 
-  * tph <code prolog> ?- app_child(hml,​_,​tph,​tph). </​code>​ 
-  * ard <code prolog> ?- app_child(hml,​_,​ard,​ard). </​code>​ 
- 
-W celu dodania za jednym razem większej ilości dzieci używamy predykatu pochodnego: 
-<code prolog> 
-app_child(Parent,​P_id,​Child,​ChildIdName,​How_much). 
-</​code>​ 
- 
-Jest to przydatne np, podczas dodawania dzieci **//att//** do rodzica **//​attribute_set//​**. 
-Po użyciu predykatu: 
-<code prolog> 
-app_child(attribute_set,​_,​att,​att,​12). 
-</​code>​ 
-zostanie dodanych dwanaście dzieci do rodzica **//​attribute_set//​**. 
- 
-Podobnie dodajemy: 
-  * dzieci **//​property//​** do rodzica **//​property_set//​** <code prolog> ?- app_child(property_set,​_,​property,​prp,​18)</​code> ​ 
-  * dzieci **//​trans//​** do rodzica **//tph//** <code prolog> ?- app_child(tph,​_,​trans,​trn,​17).</​code> ​ 
-  * dzieci **//dep//** do rodzica **//ard//** <code prolog> ?- ?- app_child(ard,​_,​dep,​dep,​6).</​code> ​ 
- 
-Następnie pozostaje tylko dodanie odpowiednich dzieci **//​attref//​** do odpowiednich rodziców **//​property//​**. 
-Tu ponownie wykorzystujemy wyżej wymieniany predykat, ale już z podaniem ID rodzica. Przykładowo,​ po wpisaniu: 
-<code prolog> ?- app_child(property,​id=prp_1,​attref,​att_r,​2)</​code>​ 
-dodane zostaną dwoje dzieci **//​attref//​** do rodzica **//​property//​** o id **//​id=prp_1//​**. 
- 
-:​!::​!:​UWAGA:​!::​!:​ 
- 
-Kiedy podajemy **id** rodzica, do którego chcemy przypisać dziecko, podajemy pełny tekst, np. **//​id=prp_1//​**. 
- 
-W ten sposób stworzono cały szkielet dokumentu xml o zadanym korzeniu oraz zadanych dzieciach. Każdy element posiada własne, unikalne id. Powstały szkielet bez atrybutów znajduje się [[pl:​miw:​miw08_prolog_xml:​przyklad:​p1|tutaj]]. Ostatnią rzeczą będzie dodawanie odpowiednich atrybutów. 
- 
- 
- 
- 
- 
- 
-==== Dodawanie atrybutów ==== 
-Atrybuty do wybranego elementu dodaje się przy użyciu predykatu, 
-<code prolog> 
-add_attribute(Parent,​P_id,​Attr). 
-</​code>​ 
-gdzie jako argument podajemy kolejno: 
-  * nazwę elementu, do którego chcemy dodać atrybut 
-  * jego id 
-  * atrybut, który chcemy dodać 
- 
-:​!::​!:​UWAGA:​!::​!:​ 
- 
-Kiedy podajemy **id** elementu, do którego chcemy dodać atrybut, podajemy pełny tekst, np. **//​id=att_0//​**. 
- 
-Podobnie jest w przypadku podawania atrybutu. Podajemy pełny tekst zawierający znak **=**, np. **//​name=thermostat//​** 
- 
-Przykładowo użycie 
-<code prolog> 
-?- add_attribute(att,​id=att_0,​name=thermostat). 
-</​code>​ 
-spowoduje dodanie atrybutu **//​name=thermostat//​** do elementu **//att//** o id **//​id=att_0//​**. 
- 
-W ten sam sposób możemy dodać każdy atrybut do każdego istniejącego elementu w "​prologowej"​ strukturze xml. 
- 
- 
- 
-==== Tworzenie pliku xml ==== 
- 
-Plik xml tworzymy przy użyciu predykatu 
-<code prolog> 
-prolog2xml(File). 
-</​code>​ 
-Po wpisaniu: ​ 
-<code prolog> 
-?- prolog2xml('​test.xml'​). 
-</​code>​ 
-zostanie utworzony plik xml o nazwie test. 
- 
-Możemy też skorzystać z predykatu 
-<code prolog> ​ 
-zapisz(File). 
-</​code>​ 
-który zapisze w podanym pliku aktualną "​prologową"​ strukturę xml oraz aktualny stan nadanych id, np. 
-<code prolog> ​ 
-zapisz('​wiedza.pl'​). 
-</​code>​ 
pl/miw/miw08_prolog_xml/przyklad.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0