packages feed

hums-0.2.2: src/Didl.hs

{-
    hums - The Haskell UPnP Server
    Copyright (C) 2009 Bardur Arantsson <bardur@scientician.net>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-}

module Didl ( mkDidl 
            ) where

import Text.XML.HXT.Arrow

-- Create a DIDL-Lite element with namespace declarations.
mkDidl :: ArrowXml a => [a XmlTree XmlTree] -> a XmlTree XmlTree
mkDidl es =
    (selem "dummy"    -- Avoids the XML declaration when HXT generates the XML.
     [ mkelem "DIDL-Lite" [ sattr "xmlns:dc" dcNs
                          , sattr "xmlns:upnp" upnpNs
                          , sattr "xmlns" ns ]
       es ])
    where
      dcNs = "http://purl.org/dc/elements/1.1/"
      upnpNs = "urn:schemas-upnp-org:metadata-1-0/upnp/"
      ns = "urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"