Dear List,
Consider the following MWE:
\startxmlsetups xml:demo:base \xmlsetsetup{#1}{tag}{xml:demo:tag} \stopxmlsetups \xmlregisterdocumentsetup{demo}{xml:demo:base} \startxmlsetups xml:demo:tag %\doif{\xmlnamespace{#1}}{o}{NameSpaceO:} \xmlflush{#1} \stopxmlsetups \starttext \startbuffer[test] <?xml version="1.0"?> <root xmlns="NameSpaceA" xmlns:o="NameSpaceO"> <tag>text</tag> <o:tag>text</o:tag> </root> \stopbuffer \xmlprocessbuffer{demo}{test}{} \stoptext
My questions: - Is there a good way to have a separate XML setup for each XML namespace? - Alternatively, one has to do the distinction within the same XML setup. In this case, how do we get the complete namespace? (In this example: "NameSpaceA" and "NameSpaceO")
Thanks in advance for your help!
Cheers, Christoph
I found this unanswered question on the list from November 2020 and find today that I have the same question. How can one handle elements with the same name but in different namespaces? How should the different \startxmlsetups commands be written?
Thanks.
Duncan
On Mon, 16 Nov 2020 at 13:37, Christoph Reller christoph.reller@gmail.com wrote:
Dear List,
Consider the following MWE:
\startxmlsetups xml:demo:base \xmlsetsetup{#1}{tag}{xml:demo:tag} \stopxmlsetups \xmlregisterdocumentsetup{demo}{xml:demo:base} \startxmlsetups xml:demo:tag %\doif{\xmlnamespace{#1}}{o}{NameSpaceO:} \xmlflush{#1} \stopxmlsetups \starttext \startbuffer[test]
<?xml version="1.0"?>
<root xmlns="NameSpaceA" xmlns:o="NameSpaceO"> <tag>text</tag> <o:tag>text</o:tag>
</root> \stopbuffer \xmlprocessbuffer{demo}{test}{} \stoptext
My questions:
- Is there a good way to have a separate XML setup for each XML namespace?
- Alternatively, one has to do the distinction within the same XML setup.
In this case, how do we get the complete namespace? (In this example: "NameSpaceA" and "NameSpaceO")
Thanks in advance for your help!
Cheers, Christoph
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net
Does this help?
\startxmlsetups xml:demo:base \xmlsetsetup{#1}{tag}{xml:demo:tag} \xmlsetsetup{#1}{o:tag}{xml:demo:otag} %% <--- \stopxmlsetups \xmlregisterdocumentsetup{demo}{xml:demo:base} \startxmlsetups xml:demo:tag \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:demo:otag %% <--- {\bf \xmlflush{#1}} \stopxmlsetups \starttext \startbuffer[test] <?xml version="1.0"?> <root xmlns="NameSpaceA" xmlns:o="NameSpaceO"> <tag>text</tag> <o:tag>text</o:tag> </root> \stopbuffer \xmlprocessbuffer{demo}{test}{} \stoptext
On 23 May 2022, at 09:07, Duncan Hothersall via ntg-context ntg-context@ntg.nl wrote:
I found this unanswered question on the list from November 2020 and find today that I have the same question. How can one handle elements with the same name but in different namespaces? How should the different \startxmlsetups commands be written?
Thanks.
Duncan
On Mon, 16 Nov 2020 at 13:37, Christoph Reller christoph.reller@gmail.com wrote: Dear List,
Consider the following MWE:
\startxmlsetups xml:demo:base \xmlsetsetup{#1}{tag}{xml:demo:tag} \stopxmlsetups \xmlregisterdocumentsetup{demo}{xml:demo:base} \startxmlsetups xml:demo:tag %\doif{\xmlnamespace{#1}}{o}{NameSpaceO:} \xmlflush{#1} \stopxmlsetups \starttext \startbuffer[test]
<?xml version="1.0"?>
<root xmlns="NameSpaceA" xmlns:o="NameSpaceO"> <tag>text</tag> <o:tag>text</o:tag>
</root> \stopbuffer \xmlprocessbuffer{demo}{test}{} \stoptext
My questions:
- Is there a good way to have a separate XML setup for each XML namespace?
- Alternatively, one has to do the distinction within the same XML setup. In this case, how do we get the complete namespace? (In this example: "NameSpaceA" and "NameSpaceO")
Thanks in advance for your help!
Cheers, Christoph ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
— Bruce Horrocks Hampshire, UK
Yes, it does! Thanks Bruce. Is this documented somewhere already and I missed it?
Cheers.
Duncan
On Mon, 23 May 2022 at 21:14, Bruce Horrocks ntg@scorecrow.com wrote:
Does this help?
\startxmlsetups xml:demo:base \xmlsetsetup{#1}{tag}{xml:demo:tag} \xmlsetsetup{#1}{o:tag}{xml:demo:otag} %% <--- \stopxmlsetups \xmlregisterdocumentsetup{demo}{xml:demo:base} \startxmlsetups xml:demo:tag \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:demo:otag %% <--- {\bf \xmlflush{#1}} \stopxmlsetups \starttext \startbuffer[test]
<?xml version="1.0"?>
<root xmlns="NameSpaceA" xmlns:o="NameSpaceO"> <tag>text</tag> <o:tag>text</o:tag>
</root> \stopbuffer \xmlprocessbuffer{demo}{test}{} \stoptext
On 23 May 2022, at 09:07, Duncan Hothersall via ntg-context <
ntg-context@ntg.nl> wrote:
I found this unanswered question on the list from November 2020 and find
today that I have the same question. How can one handle elements with the same name but in different namespaces? How should the different \startxmlsetups commands be written?
Thanks.
Duncan
On Mon, 16 Nov 2020 at 13:37, Christoph Reller <
christoph.reller@gmail.com> wrote:
Dear List,
Consider the following MWE:
\startxmlsetups xml:demo:base \xmlsetsetup{#1}{tag}{xml:demo:tag} \stopxmlsetups \xmlregisterdocumentsetup{demo}{xml:demo:base} \startxmlsetups xml:demo:tag %\doif{\xmlnamespace{#1}}{o}{NameSpaceO:} \xmlflush{#1} \stopxmlsetups \starttext \startbuffer[test]
<?xml version="1.0"?>
<root xmlns="NameSpaceA" xmlns:o="NameSpaceO"> <tag>text</tag> <o:tag>text</o:tag>
</root> \stopbuffer \xmlprocessbuffer{demo}{test}{} \stoptext
My questions:
- Is there a good way to have a separate XML setup for each XML
namespace?
- Alternatively, one has to do the distinction within the same XML
setup. In this case, how do we get the complete namespace? (In this example: "NameSpaceA" and "NameSpaceO")
Thanks in advance for your help!
Cheers, Christoph
If your question is of interest to others as well, please add an entry
to the Wiki!
maillist : ntg-context@ntg.nl /
http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net
If your question is of interest to others as well, please add an entry
to the Wiki!
maillist : ntg-context@ntg.nl /
http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net
— Bruce Horrocks Hampshire, UK
I haven't seen it explicitly documented - my cue to add it to the Wiki I guess!
I work with XML a fair bit and, IMHO, the WWW consortium docs do a very poor job of explaining namespaces because they make them seem much more complicated than they are. Essentially, a tag with a namespace identifier is just another tag i.e. treat all the characters, including the colon, as the tag name. Armed with that knowledge I just created a second tag definition in the sample code you posted.
On 24 May 2022, at 09:50, Duncan Hothersall dh@capdm.com wrote:
Yes, it does! Thanks Bruce. Is this documented somewhere already and I missed it?
Cheers.
Duncan
On Mon, 23 May 2022 at 21:14, Bruce Horrocks ntg@scorecrow.com wrote: Does this help?
\startxmlsetups xml:demo:base \xmlsetsetup{#1}{tag}{xml:demo:tag} \xmlsetsetup{#1}{o:tag}{xml:demo:otag} %% <--- \stopxmlsetups \xmlregisterdocumentsetup{demo}{xml:demo:base} \startxmlsetups xml:demo:tag \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:demo:otag %% <--- {\bf \xmlflush{#1}} \stopxmlsetups \starttext \startbuffer[test]
<?xml version="1.0"?>
<root xmlns="NameSpaceA" xmlns:o="NameSpaceO"> <tag>text</tag> <o:tag>text</o:tag>
</root> \stopbuffer \xmlprocessbuffer{demo}{test}{} \stoptext
On 23 May 2022, at 09:07, Duncan Hothersall via ntg-context ntg-context@ntg.nl wrote:
I found this unanswered question on the list from November 2020 and find today that I have the same question. How can one handle elements with the same name but in different namespaces? How should the different \startxmlsetups commands be written?
Thanks.
Duncan
On Mon, 16 Nov 2020 at 13:37, Christoph Reller christoph.reller@gmail.com wrote: Dear List,
Consider the following MWE:
\startxmlsetups xml:demo:base \xmlsetsetup{#1}{tag}{xml:demo:tag} \stopxmlsetups \xmlregisterdocumentsetup{demo}{xml:demo:base} \startxmlsetups xml:demo:tag %\doif{\xmlnamespace{#1}}{o}{NameSpaceO:} \xmlflush{#1} \stopxmlsetups \starttext \startbuffer[test]
<?xml version="1.0"?>
<root xmlns="NameSpaceA" xmlns:o="NameSpaceO"> <tag>text</tag> <o:tag>text</o:tag>
</root> \stopbuffer \xmlprocessbuffer{demo}{test}{} \stoptext
My questions:
- Is there a good way to have a separate XML setup for each XML namespace?
- Alternatively, one has to do the distinction within the same XML setup. In this case, how do we get the complete namespace? (In this example: "NameSpaceA" and "NameSpaceO")
Thanks in advance for your help!
Cheers, Christoph
— Bruce Horrocks Hampshire, UK