Tento návod popisuje XML formát, který zpracovává import ve Firebase Functions
(soubor firebase/functions/processors/xml.js). Slouží jako praktická
specifikace pro vývojáře, kteří připravují export/import pro Songbook.
1) Základní struktura dokumentu
- Kořenový element může být
<InetSongDb> nebo <root>.
- Písně jsou v elementech
<song>.
- Playlisty jsou v
<playlists><playlist>...</playlist></playlists>.
- Vazba playlist -> píseň je přes ID (
playlist_song.id odkazuje na song.ID).
<InetSongDb>
<song>...</song>
<song>...</song>
<playlists>
<playlist>...</playlist>
<playlist>...</playlist>
</playlists>
</InetSongDb>
2) Povinná a doporučená pole
Píseň (<song>)
| Pole |
Typ |
Povinné |
Poznámka |
ID |
string nebo číslo |
ano |
Musí být unikátní v rámci XML. Používá se pro vazbu v playlistu. |
title |
string |
doporučeno |
Když chybí, importuje se prázdný text. |
author |
string |
doporučeno |
Když chybí, importuje se prázdný text. |
songtext |
string |
doporučeno |
Nové řádky se při importu mění na <br>. |
step |
číslo |
ne |
Aktuálně se ignoruje (transpozice se nastavuje na 0). |
Playlist (<playlist>)
| Pole |
Typ |
Povinné |
Poznámka |
title |
string |
doporučeno |
Když chybí, použije se název Playlist. |
playlist_songs.playlist_song |
pole nebo jeden objekt |
ne |
Každý playlist_song má mít id odkazující na song.ID. |
3) Minimální validní příklad
<?xml version="1.0" encoding="UTF-8"?>
<root>
<song>
<ID>1</ID>
<title>Amazing Grace</title>
<author>John Newton</author>
<songtext>Amazing grace
How sweet the sound</songtext>
</song>
<song>
<ID>2</ID>
<title>Blessed Assurance</title>
<author>Fanny Crosby</author>
<songtext>Blessed assurance
Jesus is mine</songtext>
</song>
<playlists>
<playlist>
<title>Neděle ráno</title>
<playlist_songs>
<playlist_song>
<id>1</id>
</playlist_song>
</playlist_songs>
</playlist>
</playlists>
</root>
5) Rychlý checklist před odesláním XML
- Kořen je
InetSongDb nebo root.
- Každá píseň má unikátní
ID.
- Každé
playlist_song.id odkazuje na existující píseň.
songtext obsahuje text (nové řádky jsou v pořádku).
- Soubor je validní XML a má kódování UTF-8.