Kurs XUL:Źródła danych RDF
z Mozilla Developer Center, polskiego centrum programistów Mozilli.
W tym artykule znajdziemy dodatkowe źródła danych i dowiemy się jak ich użyć w naszym pliku RDF jako źródła.
Spis treści |
[edytuj] Inne kody źródłowe Mozilli
Mozilla dostarcza kilka różnych kodów źródłowych służących do budowy. Niektóre z nich są tutaj wymienione wraz z kilkoma przykładami. Pracują one bardzo podobnie jako zakładki, mimo że platformy bywają różne.
[edytuj] Lista historii
Dane źródła historii są dostarczone poprzez dostęp to listy historii użytkowników, których linki z listy adresów URL użytkownika zostały ostatnio odwiedzone. Zasoby mają być kierowane do użycia rdf:history jako źródło danych. Tabela poniżej ukazuje zasoby (lub pola), które możesz uzyskać źródła danych jakim jest historia. Połóż własności adresu URL poniżej gdzie chcesz użyć właściwości źródła danych.
| Date | rdf:http://home.netscape.com/NC-rdf#Date | Data ostatniej wizyty |
| Name | rdf:http://home.netscape.com/NC-rdf#Name | Tytuł strony |
| Page | rdf:http://home.netscape.com/NC-rdf#Page | Nazwa strony |
| Referrer | rdf:http://home.netscape.com/NC-rdf#Referrer | Strona przekierowująca |
| URL | rdf:http://home.netscape.com/NC-rdf#URL | Strona URL |
| Visit Count | rdf:http://home.netscape.com/NC-rdf#VisitCount | Liczba odwiedzonych stron |
Typowa lista historii jest wyświetlona na drzewie z wyborem tych plików. Aby go użyć, wystarczy tylko położyć właściwości URL powyżej w atrybucie przycisków lub szablonu label. Możesz użyć właściwości NC:HistoryRoot atrybutu ref. Możesz także użyć NC:HistoryByDate, aby pobrać historię z kilku ostatnich dni.
[edytuj] Using The History List Example
Zobaczysz szablony wyświetlające się jako lista historii. Wyświetlimy historię drzewa z trzema kolumnami, Name, Page oraz Date.
Przykład 1 : Źródło
<tree flex="1" datasources="rdf:history" ref="NC:HistoryRoot">
<treecols>
<treecol id="name" label="Name" flex="1"/>
<treecol id="url" label="URL" flex="1"/>
<treecol id="date" label="Date" flex="1"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://home.netscape.com/NC-rdf#Name"/>
<treecell label="rdf:http://home.netscape.com/NC-rdf#URL"/>
<treecell label="rdf:http://home.netscape.com/NC-rdf#Date"/>
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
[edytuj] Inne źródła danych
Tablice z listy poniżej są innymi źródłami osiągalnych z Mozilla. Chcesz możesz użyć któregokolwiek z zasobów.
- Zakładki (rdf:bookmarks)
- Zakładki są generowane na podstawie listy z zawartością .
| Źródła | ||
|---|---|---|
| Added Date | rdf:http://home.netscape.com/NC-rdf#BookmarkAddDate | Data dodania zakładki |
| Description | rdf:http://home.netscape.com/NC-rdf#Description | Opis zakładki |
| Last Modified | rdf:http://home.netscape.com/WEB-rdf#LastModifiedDate | Data ostatniej modyfikacji |
| Last Visited | rdf:http://home.netscape.com/WEB-rdf#LastVisitDate | Data ostatniej wizyty |
| Name | rdf:http://home.netscape.com/NC-rdf#Name | Nazwa zakładki |
| Shortcut URL | rdf:http://home.netscape.com/NC-rdf#ShortcutURL | Skróty klawiszowe |
| URL | rdf:http://home.netscape.com/NC-rdf#URL | Link URL do |
| Prawdopodobne źródła zakładek | |
|---|---|
| NC:BookmarksRoot | Najwyższy poziom w hierarchi zakładek |
| NC:IEFavoritesRoot | Folder zakładek odpowiadający folderowi Ulubione z IE. |
| NC:PersonalToolbarFolder | Folder zakładek odpowiadający własnemu paskowi narzędzi. |
- Pliki (rdf:files)
- Podgląd plików użytkownika.
| Źródła | ||
|---|---|---|
| Name | rdf:http://home.netscape.com/NC-rdf#Name | Nazwa pliku |
| URL | rdf:http://home.netscape.com/NC-rdf#URL | URL do pliku |
| Prawdopodobne źródła plików | |
|---|---|
| NC:FilesRoot | Najwyższy poziom systemu plików (często lista napędów) |
| A file URL | Używając URL pliku dla atrybutu ref, możesz zaznaczyć specyficzny folder bedący przekierowaniem. Na przykład, możesz użyć file:///windows or file:///usr/local. |
Przykład kodu źródłowego w pliku kodu ze źródłem, określa swoją konieczną zawartość. Nie chcemy każdego pliku z plików systemowych decydowały o wyświetleniu danych. Natomiast, tylko pliki i foldery elementów drzewa (lub innych elementów) były potrzebne do wyświetlenia w momencie kiedy tak zadecydujemy.
[edytuj] Composite Datasources
Specjalny wielokrotny kod źródła w atrybutach źródła danych jest oddzielnie poprzez białe pola, przykład poniżej. Jest to efekt czytania źródła danych wspomniany we wszystkich źródłach.
<tree datasources="rdf:bookmarks rdf:history animals.rdf" ref="NC:BookmarksRoot">
Przykład ten czyta zawartość źródła z zakładek, historię i plik animals.rdf. Są one połączone z jednym składem kodu źródłowego i potrafią wtedy być użyte jako pojedyncze pliki.
Specjalny kod źródłowy rdf:null odzwierciedla pustkę, nicość. Możesz używać tego kodu źródłowego jeśli chcesz umieścić dynamiczny kod źródłowy w skrypcie, nie potrzebujesz jego na początku i nie poznasz swojego dokładnego URL-a.
[edytuj] Kod źródłowy RDF użytkownika
Możemy używać jakiegokolwiek wewnętrznego kodu źródłowego, jeśli będziemy mieli taką potrzebę. Jest tu kilka innych kodów dla poczty, książki adresowej i służących do przeszukiwania ich. Kiedykolwiek, będziesz chciał możesz użyć twojego własnego kodu źródłowego RDF przechowanego w pliku RDF. Plik może być dwojaki, lokalny lub zdalny. Wystarczy umieścić URL pliku RDF w atrybucie datasources.
Używanie kodu źródłowego RDF prowadzi do większej funkcjonalności kodu wewnętrznego. Możesz używać reguł odpowiadającym specjalnym typom zawartości. Atrybuty w elemencie rule odpowiadają, jeżeli one odpowiadają atrybutom RDF Description elementu. Także możesz tworzyć pliki RDF, które są hierarchiczne.
[edytuj] Using RDF file Example
Następny przykład, to jak plik RDF potrafi być użyty w bazie danych. Plik RDF jest czarodziejski i potrafi wyświetlić osobno: Źródło RDF
<tree flex="1" width="200" height="200"
datasources="animals.rdf" ref="http://www.some-fictitious-zoo.com/all-animals">
<treecols>
<treecol id="name" label="Name" primary="true" flex="1"/>
<treecol id="species" label="Species" flex="1"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.some-fictitious-zoo.com/rdf#name"/>
<treecell label="rdf:http://www.some-fictitious-zoo.com/rdf#species"/>
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
Tutaj, dane zostały wygenerowane z pliku. Atrybut ref został zarejestrowany jako element korzenia w pliku RDF, który jest najwyższym poziomem Seq. Otrzymamy kompletną listę animals. Jeżeli potrzebowalibyśmy,to moglibyśmy umieszczać atrybut ref do wszelkiej innej zawartości about cechach atrybutu ograniczającego ustawienia danych, które są zwracane. Na przykład, do wyświetlania tylko reptails, użyj wartości http://www.some-fictitious-zoo.com/reptiles.
[edytuj] Setting the ref Attribute Example
Przykład poniżej pokazuje jak wyświetlić szczególną część kodu źródłowego RDF ustawiając atrybut ref.
<window
id="example-window"
title="History List"
xmlns:ANIMALS="http://www.some-fictitious-zoo.com/rdf#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<button label="Click here to see the mammals the zoo has" type="menu"
datasources="animals.rdf" ref="http://www.some-fictitious-zoo.com/mammals">
<template>
<rule ANIMALS:specimens="0"></rule>
<rule>
<menupopup>
<menuitem uri="rdf:*" label="rdf:http://www.some-fictitious-zoo.com/rdf#name"/>
</menupopup>
</rule>
</template>
</button>
</window>
W tym przypadku tylko mammals są żądane, więc zaznaczamy mammals URI na liście. Zauważymy tą wartość atrybutu ref w przykładzie http://www.some-fictitious-zoo.com/mammals, który odzwierciedla jeden element Seq w pliku RDF. To zdarzenie tylko powraca w liście w przypadku potomków.
Zostały użyte tutaj dwie zasady. Pierwsza reguła trzyma całą zawartość jaką posiada ANIMALS:specimens, atrybut ustawiony jest na 0. Możesz zobaczyć te cechy w każdym Description elementu w pliku RDF. Niektóre z nich mają wartość równą 0. Więc w tym wypadku, użyjemy zasady pierwszej. Ponieważ, zasada pierwsza nie ma wartości, nic nie będzie ci wyświetlane. Jest to efektowna droga do ukrycia daty, której nie chcemy wyświetlić.
Druga zasada stosuje się do całej reszty kodu i tworzy wiersze wyskakującego menu. Końcowy efekt jest taki, że dostaniemy wyskakujące menu zawierające wszystkie mammals które nie mają podanej wartości równej 0.
Następnie, zobaczymy pełne zasady składni.
