+string const & Layout::docbooktag() const
+{
+ if (docbooktag_.empty()) {
+ if (to_ascii(name_) == "Plain Layout")
+ docbooktag_ = "para";
+ else // No sensible default value, unhappily...
+ docbooktag_ = to_utf8(name_);
+ }
+ return docbooktag_;
+}
+
+
+string const & Layout::docbookattr() const
+{
+ // Perfectly OK to return no attributes, so docbookattr_ does not need to be filled.
+ return docbookattr_;
+}
+
+
+bool isValidTagType(std::string const & type)
+{
+ return !(type.empty() || (type != "block" && type != "paragraph" && type != "inline"));
+}
+
+
+string const & Layout::docbooktagtype() const
+{
+ if (!isValidTagType(docbooktagtype_))
+ docbooktagtype_ = "block";
+ return docbooktagtype_;
+}
+
+
+string const & Layout::docbookinnertag() const
+{
+ if (docbookinnertag_.empty())
+ docbookinnertag_ = "NONE";
+ return docbookinnertag_;
+}
+
+
+string const & Layout::docbookinnerattr() const
+{
+ return docbookinnerattr_;
+}
+
+
+string const & Layout::docbookinnertagtype() const
+{
+ if (!isValidTagType(docbookinnertagtype_))
+ docbookinnertagtype_ = "block";
+ return docbookinnertagtype_;
+}
+
+
+string const & Layout::docbookininfo() const
+{
+ // Indeed, a trilean. Only titles should be "maybe": otherwise, metadata is "always", content is "never".
+ if (docbookininfo_.empty() || (docbookininfo_ != "never" && docbookininfo_ != "always" && docbookininfo_ != "maybe"))
+ docbookininfo_ = "never";
+ return docbookininfo_;
+}
+
+
+string const & Layout::docbookwrappertag() const
+{
+ if (docbookwrappertag_.empty())
+ docbookwrappertag_ = "NONE";
+ return docbookwrappertag_;
+}
+
+
+string const & Layout::docbookwrapperattr() const
+{
+ return docbookwrapperattr_;
+}
+
+
+string const & Layout::docbookwrappertagtype() const
+{
+ if (!isValidTagType(docbookwrappertagtype_))
+ docbookwrappertagtype_ = "block";
+ return docbookwrappertagtype_;
+}
+
+
+string const & Layout::docbooksectiontag() const
+{
+ if (docbooksectiontag_.empty())
+ docbooksectiontag_ = "section";
+ return docbooksectiontag_;
+}
+
+
+string const & Layout::docbookitemwrappertag() const
+{
+ if (docbookitemwrappertag_.empty())
+ docbookitemwrappertag_ = "NONE";
+ return docbookitemwrappertag_;
+}
+
+
+string const & Layout::docbookitemwrapperattr() const
+{
+ return docbookitemwrapperattr_;
+}
+
+
+string const & Layout::docbookitemwrappertagtype() const
+{
+ if (!isValidTagType(docbookitemwrappertagtype_))
+ docbookitemwrappertagtype_ = "block";
+ return docbookitemwrappertagtype_;
+}
+
+
+string const & Layout::docbookitemtag() const
+{
+ if (docbookitemtag_.empty())
+ docbookitemtag_ = "NONE";
+ return docbookitemtag_;
+}
+
+
+string const & Layout::docbookitemattr() const
+{
+ return docbookitemattr_;
+}
+
+
+string const & Layout::docbookitemtagtype() const
+{
+ if (!isValidTagType(docbookitemtagtype_))
+ docbookitemtagtype_ = "block";
+ return docbookitemtagtype_;
+}
+
+
+string const & Layout::docbookitemlabeltag() const
+{
+ if (docbookitemlabeltag_.empty())
+ docbookitemlabeltag_ = "NONE";
+ return docbookitemlabeltag_;
+}
+
+
+string const & Layout::docbookitemlabelattr() const
+{
+ return docbookitemlabelattr_;
+}
+
+
+string const & Layout::docbookitemlabeltagtype() const
+{
+ if (!isValidTagType(docbookitemlabeltagtype_))
+ docbookitemlabeltagtype_ = "block";
+ return docbookitemlabeltagtype_;
+}
+
+
+string const & Layout::docbookiteminnertag() const
+{
+ if (docbookiteminnertag_.empty())
+ docbookiteminnertag_ = "NONE";
+ return docbookiteminnertag_;
+}
+
+
+string const & Layout::docbookiteminnerattr() const
+{
+ return docbookiteminnerattr_;
+}
+
+
+string const & Layout::docbookiteminnertagtype() const
+{
+ if (!isValidTagType(docbookiteminnertagtype_))
+ docbookiteminnertagtype_ = "block";
+ return docbookiteminnertagtype_;
+}
+
+
+std::string const & Layout::docbookforceabstracttag() const
+{
+ if (docbookforceabstracttag_.empty())
+ docbookforceabstracttag_ = "NONE";
+ return docbookforceabstracttag_;
+}
+
+
+