Różnice

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

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
pl:miw:miw08_prolog_xml:parsowanie [2008/06/02 19:32]
miw utworzono
pl:miw:miw08_prolog_xml:parsowanie [2008/06/02 19:36]
miw
Linia 1: Linia 1:
-===== Parsowanie prostych plików xml ===== 
  
-==== Plik '​cd.xml'​ ==== 
-<code xml> 
-<​!DOCTYPE CD SYSTEM "​cd.dtd">​ 
-<CD> 
-    <​TITLE>​Empire Burlesque</​TITLE>​ 
-    <​ARTIST>​Bob Dylan</​ARTIST>​ 
-    <​COUNTRY>​USA</​COUNTRY>​ 
-    <​COMPANY>​Columbia</​COMPANY>​ 
-    <​PRICE>​10.90</​PRICE>​ 
-    <​YEAR>​1985</​YEAR>​ 
-    <​TITLE>​Hide your heart</​TITLE>​ 
-    <​ARTIST>​Bonnie Tylor</​ARTIST>​ 
-    <​COUNTRY>​UK</​COUNTRY>​ 
-    <​COMPANY>​CBS Records</​COMPANY>​ 
-    <​PRICE>​9.90</​PRICE>​ 
-    <​YEAR>​1988</​YEAR>​ 
-    <​TITLE>​Greatest Hits</​TITLE>​ 
-    <​ARTIST>​Dolly Parton</​ARTIST>​ 
-    <​COUNTRY>​USA</​COUNTRY>​ 
-    <​COMPANY>​RCA</​COMPANY>​ 
-    <​PRICE>​9.90</​PRICE>​ 
-    <​YEAR>​1982</​YEAR>​ 
-    <​TITLE>​Still got the blues</​TITLE>​ 
-    <​ARTIST>​Gary More</​ARTIST>​ 
-    <​COUNTRY>​UK</​COUNTRY>​ 
-    <​COMPANY>​Virgin redords</​COMPANY>​ 
-    <​PRICE>​10.20</​PRICE>​ 
-    <​YEAR>​1990</​YEAR>​ 
-</​code>​ 
- 
- 
- 
-==== Plik cd.dtd ==== 
-<code xml> 
-<​!ELEMENT ​ CD (TITLE, ARTIST, COUNTRY, COMPANY, PRICE, YEAR?)*> 
-<​!ELEMENT TITLE (#​PCDATA)>​ 
-<​!ELEMENT ARTIST (#​PCDATA)>​ 
-<​!ELEMENT COUNTRY (#​PCDATA)>​ 
-<​!ELEMENT COMPANY (#​PCDATA)>​ 
-<​!ELEMENT PRICE (#​PCDATA)>​ 
-<​!ELEMENT YEAR (#​PCDATA)>​ 
-</​code>​ 
- 
- 
-==== SWI-Prolog ==== 
-    * SGML/XML, interpret XML Namespaces, Validate an SGML/XML DOM-term 
-Jeśli chodzi o SWI-Prolog do tego momentu udało sie zrobić następujące rzeczy: 
-Ze strony [[http://​www.swi-prolog.org/​]] pobrano przykładowe użcie predykatów korzystających z biblioteki sgml2pl. Użyto predykatu xml2pro('​cd.xml','​cd.dtd',​X) i pod X otrzymano postać prologową pliku cd.xml. W drugą strone użyto predykatu pro2xml(postac_w_prologu,'​plik.xml'​). Poniżej przedstawiono postać w prologu wygenerowaną przez predykat xml2pro: ​ 
-<code prolog> cd([], [title([], '​Empire Burlesque'​), ​ 
-artist([], 'Bob Dylan'​),​ 
-country([], '​USA'​), ​ 
-company([], Columbia'​), ​ 
-price([], '​10.90'​), ​ 
-year([], '​1985'​), ​ 
-title([], 'Hide your heart'​), ​ 
-artist([], '​halo'​), ​ 
-country([], '​Polska'​), ​ 
-company([], '​EMI'​), ​ 
-price([], '​23.90'​), ​ 
-year([], '​1999'​)|...])</​code>​ 
-Podobnie działa predykat load_xml_file('​cd.xml',​T). PO jego użyciu otrzymano: 
-<code prolog> 
-T = [element('​CD',​ [], [ 
-element('​TITLE',​ [], ['​Empire Burlesque'​]), ​ 
-element('​ARTIST',​ [], ['Bob Dylan'​]), ​ 
-element('​COUNTRY',​ [], ['​USA'​]), ​ 
-element('​COMPANY',​ [], ['​Columbia'​]), ​ 
-element('​PRICE',​ [], ['​10.90'​]), ​ 
-element('​YEAR',​ [], [...]), ​ 
-element(...,​ ..., ...)|...])] 
-</​code>​ 
- 
- 
- 
-==== BProlog ==== 
-Udało się zainstalować BProlog oraz załadować biblioteke '​xml.pl'​. Po sparsowaniu pliku '​cd.xml'​ otrzymano reprezentacje tego pliku xml w postaci termu w prologu. 
-Sposób działania: 
-  * Komenda cd(Dir) ustala ścieżke w której pracujemy, np. cd('​C:/​BProlog/​Tools'​). Tam muszą znajdować sie zarówno pilik xml jak i plik biblioteki '​xml.pl'​. 
-  * Komenda cl(File) kompiluje i ładuje program, np. cl('​xml.pl'​) kompiluje i ładuje biblioteke '​xml.pl'​ 
-  * Dalej posługujemy się predykatami zawartymi w biblotece, np. xml2pl('​cd.xml','​nowy.pl'​) tworzy plik nowy.pl zawierający postać prologową pliku cd.xml. 
- 
-Poniżej przedstawiono wygenerowaną postać w prologu: 
-<code prolog> 
-xml( [version="​1.0",​ encoding="​ISO-8859-1",​ standalone="​no"​],​ 
- [ 
- doctype( '​CD',​ system( "​cd.dtd"​ ) ), 
- element( '​CD',​ 
- [], 
- [ 
- element( '​TITLE',​[],​[pcdata("​Empire Burlesque"​)] ), 
- element( '​ARTIST',​[],​[pcdata("​Bob Dylan"​)] ), 
- element( '​COUNTRY',​[],​[pcdata("​USA"​)] ), 
- element( '​COMPANY',​[],​[pcdata("​Columbia"​)] ), 
- element( '​PRICE',​[],​[pcdata("​10.90"​)] ), 
- element( '​YEAR',​[],​[pcdata("​1985"​)] ), 
- element( '​TITLE',​[],​[pcdata("​Hide your heart"​)] ), 
- element( '​ARTIST',​[],​[pcdata("​Bonnie Tylor"​)] ), 
- element( '​COUNTRY',​[],​[pcdata("​UK"​)] ), 
- element( '​COMPANY',​[],​[pcdata("​CBS Records"​)] ), 
- element( '​PRICE',​[],​[pcdata("​9.90"​)] ), 
- element( '​YEAR',​[],​[pcdata("​1988"​)] ), 
- element( '​TITLE',​[],​[pcdata("​Greatest Hits"​)] ), 
- element( '​ARTIST',​[],​[pcdata("​Dolly Parton"​)] ), 
- element( '​COUNTRY',​[],​[pcdata("​USA"​)] ), 
- element( '​COMPANY',​[],​[pcdata("​RCA"​)] ), 
- element( '​PRICE',​[],​[pcdata("​9.90"​)] ), 
- element( '​YEAR',​[],​[pcdata("​1982"​)] ), 
- element( '​TITLE',​[],​[pcdata("​Still got the blues"​)] ), 
- element( '​ARTIST',​[],​[pcdata("​Gary More"​)] ), 
- element( '​COUNTRY',​[],​[pcdata("​UK"​)] ), 
- element( '​COMPANY',​[],​[pcdata("​Virgin redords"​)] ), 
- element( '​PRICE',​[],​[pcdata("​10.20"​)] ), 
- element( '​YEAR',​[],​[pcdata("​1990"​)] ) 
- ] ) 
- ] ). 
-</​code>​ 
- 
-==== Amzi! Prolog ==== 
-Wersja prologu Amzi! jest możliwa do ściągnięcia jako wersja "Free (Never Expires)"​. Za inne wersje trzeba płacić. Do tej pory nie udało się skorzystać z biblioteki podanej w [[http://​www.amzi.com/​manuals/​amzi7/​libs/​xml.htm|XML.pro]]. 
- 
-==== EZY Prolog ==== 
-Udało sie zainstalować EZY Prolog Suite. Jest to wersja darmowa tzw. EZY Prolog for students. Przetestowano program ezy_zml_laboratory.ezy. Program pozwala na wczytanie pliku xml i jego sparsowanie. 
- 
- 
-==== MINERVA ==== 
-Minerva jest licencjonowanym produktem firmy IF Computer Japan. Jest możliwe posiadanie licencji ewaluacyjnej (wolnej od opłaty) ważnej na okres 2 miesięcy. Minerva może być nazwana jako Java Prolog ponieważ dostarcza funkcjonalności Prologu jako klasa Javy.  
- 
- 
- 
- 
-==== JIProlog ==== 
-Po zainstalowaniu i uruchomieniu lub po uruchomieniu apletu na stronie parser zadziałał. Wersja tego prologu była bezpłatna, podczas działania wyświetlał sie tylko napis informujący użytkownika,​ że posiada wersje shareware unregistered. Zgodnie z przykładem udało sie otrzymać postać prologową po sparsowaniu pliku xml. Poszczególne kroki: 
-  * load_library('​jipxxml.jar'​). - ładowanie biblioteki do obsługi plików xml 
-  * load_library('​jipxio.jar'​). - ładowanie biblioteki do i/o dla plików 
-  * see('​cd.xml'​). - otworzenie pliku xml 
-  * xml_read_document(X) - przetworzenie dokumentu xml do postaci prologu 
- 
-Istnieje też predykat create_xml_file(X) który zawarty jest w przykładowym programie xml_sample.pl. Predykat ten tworzy plik xml na podstawie termu prologowego. Istnieje też predykat xml_write_document(Handle,​Term). 
-Wygenerowany plik w postaci prologowej: 
-<code prolog> 
-X = xml_document([[version = 1.0, encoding = UTF-8], ​ 
-xml_doctype(CD,​ [SYSTEM = cd.dtd], [])],  
-xml_element(CD,​ [],  
-[xml_element(TITLE,​ [], [xml_text(Empire Burlesque)]), ​ 
-xml_element(ARTIST,​ [], [xml_text(Bob Dylan)]), ​ 
-xml_element(COUNTRY,​ [], [xml_text(USA)]), ​ 
-xml_element(COMPANY,​ [], [xml_text(Columbia)]), ​ 
-xml_element(PRICE,​ [], [xml_text(10.90)]), ​ 
-xml_element(YEAR,​ [], [xml_text(1985)]), ​ 
-xml_element(TITLE,​ [], [xml_text(Hide your heart)]), ​ 
-xml_element(ARTIST,​ [], [xml_text(Bonnie Tylor)]), ​ 
-xml_element(COUNTRY,​ [], [xml_text(UK)]), ​ 
-xml_element(COMPANY,​ [], [xml_text(CBS Records)]), ​ 
-xml_element(PRICE,​ [], [xml_text(9.90)]), ​ 
-xml_element(YEAR,​ [], [xml_text(1988)]), ​ 
-xml_element(TITLE,​ [], [xml_text(Greatest Hits)]), ​ 
-xml_element(ARTIST,​ [], [xml_text(Dolly Parton)]), ​ 
-xml_element(COUNTRY,​ [], [xml_text(USA)]), ​ 
-xml_element(COMPANY,​ [], [xml_text(RCA)]), ​ 
-xml_element(PRICE,​ [], [xml_text(9.90)]), ​ 
-xml_element(YEAR,​ [], [xml_text(1982)]), ​ 
-xml_element(TITLE,​ [], [xml_text(Still got the blues)]), ​ 
-xml_element(ARTIST,​ [], [xml_text(Gary More)]), ​ 
-xml_element(COUNTRY,​ [], [xml_text(UK)]), ​ 
-xml_element(COMPANY,​ [], [xml_text(Virgin redords)]), ​ 
-xml_element(PRICE,​ [], [xml_text(10.20)]), ​ 
-xml_element(YEAR,​ [], [xml_text(1990)]) 
-])) 
-</​code>​ 
- 
- 
-==== YAP Prolog ==== 
-Wersja YAP Prolog jest bezpłatna ​ użyciu w środowiskach akademickich. Istnieje biblioteka posiadająca możliwości związane z plikami XML/HTML (parsowanie plików XML lub HTML) - [[http://​www.clip.dia.fi.upm.es/​Software/​pillow/​pillow.html|The PiLLoW Web Programming Library ]]. 
- 
-Wersje tej biblioteki są dostępne zarówno dla YAP Prolog jak i dla SWI Prolog oraz Ciao Prolog. 
- 
-Jeśli chodzi o predykaty związane z XML jest dostępny [[http://​www.clip.dia.fi.upm.es/​Software/​pillow/​pillow_doc_html/​pillow_doc_3.html#​SEC5|xml2terms/​2]] 
- 
-Predykat ten wykorzystuje się na dwa sposoby: 
-  - translacja XML-term do kodu XML 
-  - translacja kodu XML do strukturalnego termu XML'​owego 
pl/miw/miw08_prolog_xml/parsowanie.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