Hi, I support the idea of an transform command, too. It would be nice to be able to define a staring template, too, if necessary. Like the Saxon -it parameter.
best regards, Roman > -----Original Message----- > From: xmleditor-support-bounces at xmlmind.com > [mailto:xmleditor-support-bounces at xmlmind.com] On Behalf Of > Alain Pierrot > Sent: Friday, January 05, 2007 1:36 PM > To: xmleditor-support at xmlmind.com > Subject: Re: [XXE] The "transform" command > > I support the motion. > It would also be nice to be able to store the result of the > transformation in a file, if it is not meant to be used in > pick or to be pasted as xml. > > Alain Pierrot > APSED > > Le 5 janv. 07 ? 12:50, Hussein Shafie a ?crit : > > > Kevin Flynn wrote: > >> > >> Thanks for the suggestion, but I'm afraid my problem is > rather more > >> complicated than that, and I'm certain that it cannot be > solved using > >> standard CSS. > > > > OK. > > > > > > > >> The root "mode" attribute is a kind of shorthand that can > define the > >> settings of several conditions. Mode="normal" might, for example, > >> mean os="linux", customer="Microsoft", version="3.0". > There is a lot > >> of indirection involved. If the "matches" function I > dreamed up were > >> implemented, this is how I believe I would need to use it: > >> > >> E:matches("contains(concat(' ', at value,' '),concat(' > >> ',/root/local-config/filters/filt...@id=/root/@mode]/criterion > >> [...@selector=cur > >> rent()/@selector]/@value,' '))"){ > >> background-color: #ffe4c4; > >> } > >> > >> The E element has two attributes of interest, which might > be set as > >> follows: > >> > >> selector="os" value="linux mac" > >> > >> meaning that the contents of the element are relevant for > both linux > >> and mac OSes. > >> > >> The local-config element referenced in the xpath expression is > >> included in documents as an external entity and contains > >> configuration data (including filter definitions) for all the > >> documents in a particular project. > >> > >> A filter defines a set of selection criteria: > >> > >> <filter id="normal"> > >> <criterion selector="os" value="linux"/> <criterion > >> selector="customer" value="Microsoft"/> <criterion > >> selector="version" value="3.0"/> </filter> > >> > >> and the /root/@mode attribute must contain the name of one > of these > >> filters if it is set. > >> > >> Selectors and their possible values are defined elsewhere in the > >> config file. > >> > >> This probably seems like a very convoluted structure, but > it makes it > >> relatively easy and SAFE to produce many variants of a single > >> document. > >> Since all filter names, selector names and values are > predefined as > >> IDs in the local-config file, it's easy to prevent the > writer making > >> mistakes. > >> > >> As I said earlier, the "matches" idea is just a bit of "wishful > >> thinking", and a "transform" function would be a perfectly > adequate > >> solution for me. If you should decide not to implement > that, then I > >> will have to find some other solution myself... > > > > E:matches() selectors are not hard to implement but they are (1) > > non-standard, (2) potentially very slow. That's why we are very > > reluctant to implement such beast. > > > > Morever, a CSS style sheet extension (written in Java[tm]) may > > probably be used to solve this kind of problem. See > > http://www.xmlmind.com/xmleditor/_distrib/doc/dev/styleext.html > > > > > > > >> ... and it looks as though Alain Pierrot may have provided > me with > >> a means > >> of doing that, so thanks very much to him. > >> > >> It would be nice to know if you intend to implement a "transform" > >> command, > > > > We could implement it in next version if there is > sufficient interest. > > > >> and if so, what it will look like. > > > > Like a number of other commands, the "transform" command is only > > useful > > for writing macros. > > > > Using the XSLT style sheet passed as a parameter, the "transform" > > command transforms part or all of the document being edited > (explicit > > selection, implicit selection, whole document, depending on a > > parameter) to an output stream (XML, HTML, plain text). > > > > This output stream is ``loaded as a string'' and returned as the > > result > > of the "transform" command. > > > > If this result is the string representation of an XML tree, it > > could be > > directly used by a subsequent "paste" command. > > > > If this result is a plain text list of items, it could be directly > > used > > by a subsequent "pick" command. > > > > The parameters of the "transform" command are: > > * The URL of the XSLT style sheet. (The "%c" variable will be made > > available in order to resolve URLs relative to the configuration > > containing the macro invoking the transform command.) > > * Optional parameters for this XSLT style sheet. > > * What is to be transformed (explicit selection, implicit selection, > > whole document; default: explicit selection). > > * The encoding of the output stream (default: UTF-8). > > > > The "transform" command should be much more efficient than a process > > command, even when the XSLT style sheet of the process command is > > cached > > and when there is no user feedback during the execution of > the process > > command. > > > > > > -- > > XMLmind XML Editor Support List > > xmleditor-support at xmlmind.com > > http://www.xmlmind.com/mailman/listinfo/xmleditor-support > > > -------------------------------------------------------------- > -------- > > ----------------- > > Orange vous informe que cet e-mail a ete controle par > l'anti-virus > > mail. > > Aucun virus connu a ce jour par nos services n'a ete detecte. > > > > > > > > > > -- > XMLmind XML Editor Support List > xmleditor-support at xmlmind.com > http://www.xmlmind.com/mailman/listinfo/xmleditor-support >

