MB_MAKE_XML_LT := < $(call mb-make-call,mb-doc-variable-rock,MB_MAKE_XML_LT,Expanded special char; lesser than.) MB_MAKE_XML_GT := > $(call mb-make-call,mb-doc-variable-rock,MB_MAKE_XML_GT,Expanded special char; greater than.) MB_MAKE_XML_CDATA_START := $(call mb-make-call,mb-doc-variable-rock,MB_MAKE_XML_CDATA_END,Expanded special char; XML cdata end.) define mb-make-xml-prolog $(MB_ᕽᕽᕽ   )$(MB_MAKE_XML_LT)$\ $(MB_ᕽᕽᕽ    )?xml version$(MB_MAKE_EQUALS)"1.0" ?$\ $(MB_ᕽᕽᕽ   )$(MB_MAKE_XML_GT) endef $(call mb-make-call,mb-doc-function-deep,mb-make-xml-prolog,Print xml document prolog.) define _escape-xml-attr $(MB_ᕽᕽᕽ   )$(subst ',',$(subst ","e;,$(subst &,&,$(subst <,<,$(subst >,>,$(subst $(MB_MAKE_XML_CDATA_START),,$(subst $(MB_MAKE_XML_CDATA_END),,$(1)))))))) endef define mb-make-xml-open $(MB_ᕽᕽᕽ   )$(MB_MAKE_XML_LT)$(1)$\ $(MB_ᕽᕽᕽ    )$(if $(2), $(2)$(MB_MAKE_EQUALS)"$(call mb-make-call,_escape-xml-attr,$(3))")$\ $(MB_ᕽᕽᕽ    )$(if $(4), $(4)$(MB_MAKE_EQUALS)"$(call mb-make-call,_escape-xml-attr,$(5))")$\ $(MB_ᕽᕽᕽ   )$(MB_MAKE_XML_GT) endef $(call mb-make-call,mb-doc-function-deep,mb-make-xml-open,Print xml open tag., [attr1-name] [attr1-value] [attr2-name] [attr2-value]) define mb-make-xml-close $(MB_ᕽᕽᕽ   )$(MB_MAKE_XML_LT)/$(1)$(MB_MAKE_XML_GT) endef $(call mb-make-call,mb-doc-function-deep,mb-make-xml-close,Print xml close tag.,) define _escape-xml-value $(MB_ᕽᕽᕽ   )$(subst $(MB_MAKE_XML_CDATA_START),,$(subst $(MB_MAKE_XML_CDATA_END),,$(1))) endef define mb-make-xml-value $(MB_ᕽᕽᕽ   )$(MB_MAKE_XML_CDATA_START)$\ $(MB_ᕽᕽᕽ    )$(call mb-make-call,_escape-xml-value,$(1))$\ $(MB_ᕽᕽᕽ   )$(MB_MAKE_XML_CDATA_END) endef $(call mb-make-call,mb-doc-function-deep,mb-make-xml-value,Print xml value in cdata wrapper.,) define mb-make-xml-tag-value $(MB_ᕽᕽᕽ   )$(if $(2),$(call mb-make-call,mb-make-xml-open,$(1))$(call mb-make-call,mb-make-xml-value,$(2))$(call mb-make-call,mb-make-xml-close,$(1))) endef $(call mb-make-call,mb-doc-function-deep,mb-make-xml-tag-value,Print xml tag with value inside., [value])