Subject:macros for custom validation engines Author:Kurt Wald Date:24 Jun 2009 01:23 PM
a number of suitable validation engines do not accept the result of the ${FilePath} macro containing the protocol (file:///) but simply require the filename and path. It would be helpful to have a macro for this, because the attempt to combine macros also fails (e.g. ${FileDir}/${FileName}. Stylus version is 2009 Enterprise R2.
Additionally: is it possible, that not all macros are documented (e. g. ${SchemaURLFile} use by Java built-in)
Subject:macros for custom validation engines Author:(Deleted User) Date:26 Jun 2009 12:40 PM Originally Posted: 26 Jun 2009 08:09 AM
Hi Kurt,
have you tried with ${FileDir}\${FileName}? As ${FileDir} expands to "c:\path", attaching a "/file.xml" could be treated as an option, instead of a continuation of the path.
As for ${SchemaURLFile}, you are correct; it is not documented in the Help. In short, it expands into "-schemaURLFile tempfile.txt" where tempfile.txt is a text document containing the name of an XMLSchema on each separate line (the names of the schema comes from the usage of "Associate Schema to Folder" in the project window); each schema should be pre-loaded before attempting validation, so that even XML documents that carry no reference to a schema can be validated.
Subject:macros for custom validation engines Author:Kurt Wald Date:26 Jun 2009 12:32 PM
Hi Alberto,
unfortunately $(FileDir}\${FileName} expands to $(FileDir}\orders05.xml where orders05.xml is the expanded filename and $(FileDir} is not expanded at all (I uploaded a little Windows program which just displays the expanded arguments it has been called with to test this behaviour). Another problem with concatenating macros would arise when the expanded value is enclosed in quotes.
Additionally you might think about adding an option to provide xsi:noNamespaceSchemaLocation with an absolute path instead of one relative to the xml document whe associating an xml document with a schema since many engines (e. g. Oracle) do not resolve relative paths.
Subject:macros for custom validation engines Author:Kurt Wald Date:26 Jun 2009 12:50 PM
sorry, my mistake, but when corrected the expanded result is "d:\XML\Stylusprj\toorders05\xmlout"\orders05.xml which brings up the quotation marks problem.
Subject:macros for custom validation engines Author:(Deleted User) Date:29 Jun 2009 09:06 AM
Hi Kurt,
in the next version of Stylus Studio you will be able to use a ${FileLocalPath} to achieve that; in the meanwhile you can workaround the problem by using a wrapper around your validation engine (e.g. a small Perl script that merges the two values as needed)