Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_prolog_xml:przyklad [2008/05/28 16:17] miw |
pl:miw:miw08_prolog_xml:przyklad [2019/06/27 15:50] (aktualna) |
===== Przykład ===== | ===== Przykład ===== |
| Poniżej pokazano przykład tworzenia dokumentu xml z wykorzystaniem stworzonego API. W przykładzie pokazano sposób tworzenia pliku xml otrzymanego z systemu [[pl:miw:miw08_prolog_xml:plik_varda|VARDA-M_1]] |
| |
| |
| |
==== Tworzenie korzenia ==== | ==== Tworzenie korzenia ==== |
element(hml, [id=hml_0], []). | element(hml, [id=hml_0], []). |
</code> | </code> |
| |
| |
| |
| |
| |
| |
A więc dodanie dziecka o nazwie **//type_set//** i id **//typ_s//** do rodzica **//hml//** (korzeń) | A więc dodanie dziecka o nazwie **//type_set//** i id **//typ_s//** do rodzica **//hml//** (korzeń) |
<code prolog> | <code prolog> |
4 ?- app_child(hml,_,type_set). | ?- app_child(hml,_,type_set,typ_s). |
</code> | </code> |
Powstaje następująca struktura, korzeń **//hml//** ma na liście dziecko **//type_set//** z id o podanym prefiksie i przydzielonym numerze. | Powstaje następująca struktura, korzeń **//hml//** ma na liście dziecko **//type_set//** z id o podanym prefiksie i przydzielonym numerze. |
W celu dodania za jednym razem większej ilości dzieci używamy predykatu pochodnego: | W celu dodania za jednym razem większej ilości dzieci używamy predykatu pochodnego: |
<code prolog> | <code prolog> |
app_child(Parent,P_id,Child,How_much). | app_child(Parent,P_id,Child,ChildIdName,How_much). |
</code> | </code> |
| |
Po użyciu predykatu: | Po użyciu predykatu: |
<code prolog> | <code prolog> |
app_child(attribute_set,_,att,12). | app_child(attribute_set,_,att,att,12). |
</code> | </code> |
zostanie dodanych dwanaście dzieci do rodzica **//attribute_set//**. | zostanie dodanych dwanaście dzieci do rodzica **//attribute_set//**. |
| |
Podobnie dodajemy: | Podobnie dodajemy: |
* dzieci **//property//** do rodzica **//property_set//** <code prolog> ?- app_child(property_set,_,property,18)</code> | * 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,17).</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,6).</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//**. | 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: | 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,2)</code> | <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//**. | 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. | 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. |
| |
| |
| |
| |
| |
* jego id | * jego id |
* atrybut, który chcemy dodać | * 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 | Przykładowo użycie |