   {:tag :properties:Properties
    :attrs doc-props-app-xml-xmlns
    :content (remove-nil
-              (map when-v-tag
+              (map when-v-node
                    [application app-version]
                    [:properties:Application :properties:AppVersion]))})
 

  {:tag :cp:coreProperties
   :attrs doc-props-core-xml-xmlns
   :content (remove-nil
              (map when-v-tag
                   [title subject creator keywords description last-modified-by]
                   [:dc:title :dc:subject :dc:creator :cp:keywords
                    :dc:description :cp:lastModifiedBy]))})

(ns bakyeono.litedocx.wpml
  "WordProcessingML templates & snippets used in litedocx."
  (:require [clojure.string :as str])
  (:require [clojure.data.xml :as xml])
  (:use [bakyeono.litedocx.util]))

;;; e -> clojure.data.xml/element
;;; Since clojure.data.xml/element is used so much,
;;; use 'node' as an abbreviation of it.
;
(def ^:const ^{:private true} node clojure.data.xml/element)

;;; Constants
(def ^:const ^{:private true} content-types-xml-xmlns
  {:xmlns "http://schemas.openxmlformats.org/package/2006/content-types"})

(def ^:const ^{:private true} relationships-xmlns 
  {:xmlns "http://schemas.openxmlformats.org/package/2006/relationships"})
(def ^:const ^{:private true} doc-props-app-xml-xmlns
  {:xmlns:vt "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"
   :xmlns:properties "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"})
