After doing some research, I stumbled upon saxon-lint (https://github.com/sputnick-dev/saxon-lint), a perl program
capable of using xpath3 expressions.

In the crudest form possible:

!# /bin/bash
for ELM in `saxon-lint.pl --xpath "distinct-values(//*/name())" file.xml`
do
echo -e "\\startxmlsetups xml:$ELM \n\t \\xmlflush{#1} \n \\stopxmlsetups"
done

I still need to write $ELM into an array to make it do the following:

\startxmlsetups xml:blank:map % xml:[filename] would be also fine
\xmlsetsetup{\xmldocument}
{xml:elements:from:the:variable:elm} % list the results from saxon-lint
{xml:*}
\stopxmlsetups

That would give me the "blank" mapping file I want, saving me the
trouble of typing out the whole thing every time.

Best,
Mica

Pablo Rodriguez <oinos@gmx.es> @ 2016-02-24 01:10 PST:

> On 02/24/2016 09:20 AM, Hans Hagen wrote:
>> On 2/23/2016 10:26 PM, Mica Semrick wrote:
>>> Reading the docbook thread earlier today reminded me to ask this:
>>>
>>> Is there any feature or script that anyone can share that will read in
>>> an XML document and spit out a blank mapping file?
>>
>> what is a blank mapping file
>
> Just guessing (or that would be useful for me too), a file with the
> following scheme:
>
> \startxmlsetups xml:blank:map % xml:[filename] would be also fine
> \xmlsetsetup{\xmldocument}
> {xml:elements} % all elements used in document listed here
> {xml:*}
>
> \xmlsetsetup{\xmldocument}
> {h2[contains(@class,'author')]} % list also all elements
> {xml:title:author} % with attributes
> \stopxmlsetups
>
> \xmlregistersetup{xml:pandoc}
>
> \startxmlsetups xml:elements % basic configuration for elements
> \xmlflush{#1}
> \stopxmlsetups
>
> \startxmlsetups xml:title:author % basic configuration for attributes
> \xmlflush{#1}
> \stopxmlsetups
>
> I guess that the usefulness of this is not the actual configuration, but
> to know what you have to configure.
>
> I hope it helps,
>
> Pablo