Spis treści
Przegląd
Składnia
Wyszukiwarka Google Code Search umożliwia użytkownikom wyszukiwanie w sieci archiwów zawierających kod źródłowy. Nasze oprogramowanie lokalizuje pliki z kodem źródłowym w tych archiwach oraz wykrywa język i licencję. Użytkownik może użyć pliku packagemap, aby podać nam język i licencję kodu źródłowego w swoich plikach archiwum, podobnie jak w przypadku zwykłej mapy witryny, której może użyć w celu przekazania nam informacji o stronach w swojej witrynie.
Kod jest w formacie XML. Oto przykład:
<?xml version="1.0" encoding="UTF-8"?>
<fileset>
<file>
<path>source/myfile.cpp</path>
<type>C++</type>
<license>LGPL</icense>
</file>
<file>
<path>messages/messages.tgz</path>
<type>archive</type>
<license>BSD</license>
<packagemap>info/PackageMap.xml</packagemap>
</file>
</fileset>
Nazwy plików
W mapie witryny wyszukiwarki Code Search należy określić nazwę pliku packagemap, używając tagu <packagemap>. Jeśli plik packagemap nie zostanie określony, sprawdzimy katalog nadrzędny w archiwum pod kątem występowania niżej wymienionych plików i użyjemy tego z nich, który zostanie znaleziony jako pierwszy:
- PACKAGEMAP.XML
- PACKAGEMAP.xml
- Packagemap.xml
- packagemap.xml
- PACKAGEMAP
- Packagemap
- packagemap
Definicje tagów XML
Dostępne tagi XML przedstawiono poniżej.
<fileset> |
wymagany |
Zawiera plik i odwołanie do bieżącego standardu protokołu. |
<file> |
wymagany |
Element podrzędny zestawu plików <fileset> |
<path> |
wymagany |
Element podrzędny pliku <file>. Opisuje ścieżkę pliku w archiwum. Wielkość znaków jest rozróżniana; może zawierać dowolne znaki. |
<type> |
wymagany |
Element podrzędny pliku <file>. Tę wartość może stanowić nazwa języka lub wartość "archive". Przykładowe nazwy języków to: C, Python, C#, Java, Vim.
Wielkość znaków nie jest rozróżniana; wartości "Java", "JAVA" oraz "Java" są równorzędne.
Wartość musi być podana w znakach z zestawu ASCII w wersji do druku, bez spacji.
Nazwa musi zostać wybrana spośród obsługiwanych języków.
Indeksujemy jedynie pliki w obsługiwanym języku. Wszystkie inne pliki będą ignorowane. Można użyć nazwy języka, który nie jest jeszcze obsługiwany – możemy zaindeksować ten plik w przyszłości.
Wartość specjalna "archive" może być wykorzystywana w przypadku archiwum wewnątrz archiwum. Jest to przydatne tylko wtedy, gdy archiwum zawiera kod źródłowy.
Ponieważ wyszukiwarka Code Search indeksuje jedynie kod źródłowy, nie ma potrzeby dodawania wpisu do jakiegokolwiek archiwum zawierającego jedynie wartości text, html itd. |
<license> |
opcjonalne |
Element podrzędny pliku <file>. Ta wartość powinna stanowić nazwę licencji. Przykłady: GPL, BSD, Python, disclaimer.
Wielkość znaków nie jest rozróżniana; wartości "LPGL", "Lgpl" oraz "lgpl" są równorzędne.
Jeśli tag <type> stanowi wartość "archive", to wartość <license> odnosi się do domyślnej licencji dotyczącej plików archiwum. W przypadku określonych plików zawierających packagemap w archiwum można podać inną licencję.
Licencja musi zostać wybrana spośród obsługiwanych licencji. Nie uwzględniamy żadnych nierozpoznanych licencji – wartość takich licencji zostanie zapisana jako "nieznana". |
<packagemap> |
opcjonalne |
Element podrzędny pliku <file>. Nazwa pliku packagemap znajdującego się w archiwum. Zalecamy nazwę "PACKAGEMAP.xml". W tym przypadku automatycznie wykryjemy plik packagemap, dzięki czemu użytkownik nie musi go tu umieszczać.
Wielkość znaków jest rozróżniana.
Ten tag może być stosowany tylko w przypadku wpisów pliku <file>, gdzie wartość tagu <type> to "archive". |
Stosowanie kodów ucieczki encji
Spacje wiodące i końcowe są ignorowane. Kodowanie UTF-8 jest obowiązkowe. Tak jak w przypadku wszystkich plików XML, wszelkie wartości danych (włącznie z adresami URL) muszą zawierać kody ucieczki encji znaków podanych w poniższej tabeli.
| Znak |
Kod ucieczki |
| Znak & |
& |
& |
| Pojedynczy cudzysłów |
' |
' |
| Podwójny cudzysłów |
" |
" |
| Znak większości |
> |
> |
| Znak mniejszości |
< |
< |