Subject: Re: [xsl] clever ways to dynamically copy/create element structure as needed? From: "Chris Papademetrious christopher.papademetrious@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 1 Oct 2022 17:02:11 -0000 |
I forgot to mention one fun aspect. Sometimes the content models are order-specific: topic = element topic { title, titlealts?, (shortdesc | abstract)?, prolog?, body?, related-links?, topic* } prolog = element prolog { author*, source?, publisher?, copyright*, critdates?, permissions?, (metadata | change-historylist)*, resourceid*, (data | sort-as | data-about | foreign | mathml | svg-container | unknown)* } metadata = element metadata { audience*, category*, keywords*, prodinfo*, othermeta*, (data | sort-as | data-about | foreign | mathml | svg-container | unknown)* } so when new levels are created, they must be ordered correctly within whatever siblings might already exist. * Chris From: Chris Papademetrious christopher.papademetrious@xxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Sent: Saturday, October 1, 2022 12:28 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] clever ways to dynamically copy/create element structure as needed? Hi everyone, I want to use XSLT to add a piece of <data> metadata to a DITA topic. The DITA content model lets me place it at "topic/prolog/metadata/data": <topic id="topic"> <title>My Topic</title> <prolog> <metadata> <data name="prefix">my-prefix</data> </metadata> </prolog> <body/> </topic> Some, none, or all of the required "prolog/metadata" element structure might already exist: <topic id="topic"> <title>My Topic</title> <body/> </topic> <topic id="topic"> <title>My Topic</title> <prolog> <author type="creator">chrispy</author> <metadata> <keywords> <indexterm>some term</indexterm> </keywords> </metadata> </prolog> <body/> </topic> My current XSLT code to do this is embarrassing. Does anyone have a favorite way of adding an element at a particular hierarchy path, copying existing levels and creating missing levels as needed? (This is just an example. I have other scenarios that require deeper element structures.) Thanks! ----- Chris Papademetrious Tech Writer, Implementation Group (610) 628-9718 home office (570) 460-6078 cell XSL-List info and archive<https://urldefense.com/v3/__http:/www.mulberrytech.com/xsl/xsl-list__ ;!!A4F2R9G_pg!a7r1m9ZqiV4eF0dRar7ijsLmZPDxguhK0RPYb5y02NTd6ZMhMJ-6OOgmwoGKssR TCKpUEvPFIXTaNtIVe9rEW4v_YxwwyffaEgFRs9luLZH7nUeag425$> EasyUnsubscribe<https://urldefense.com/v3/__http:/lists.mulberrytech.com/unsu b/xsl-list/3380743__;!!A4F2R9G_pg!a7r1m9ZqiV4eF0dRar7ijsLmZPDxguhK0RPYb5y02NT d6ZMhMJ-6OOgmwoGKssRTCKpUEvPFIXTaNtIVe9rEW4v_YxwwyffaEgFRs9luLZH7nfTEHOTC$> (by email<>)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] clever ways to dynamically co, Chris Papademetrious | Thread | Re: [xsl] clever ways to dynamicall, dvint dvint@xxxxxxxx |
[xsl] clever ways to dynamically co, Chris Papademetrious | Date | Re: [xsl] clever ways to dynamicall, dvint dvint@xxxxxxxx |
Month |