Reply to: Rules maker programApril 30, 2010 at 9:16 pm
If you distribute just the RLX or RLD then it is loaded directly (ie: assuming a DTD or XSD is not found).
If you distribute just the DTD or XSD then it is compiled into an RLX or RLD.
If you distribute both types of files then the RLX or RLD is loaded and there is logic to check timestamps inside the RLX or RLD file against those for the DTD or XSD. I believe the product makes an attempt to load updated versions of referenced files but if you are concerned about this then deleting the compiled version of the DTD or XSD will resolve that issue as that will force a new one to be generated. In this case, yes, there will be a performance hit, but this will be negligible. Part of the original design for the product, actually a predecessor to XMetaL (many years ago) assumed computers were very slow (which they were) and that is one reason these compiled versions were created. They act as a sort of cached state of the representation of the schema in memory.
You can easily test this yourself by timing the load for a file that uses an RLD, vs the same file that compiles the RLD from XSD, vs one that loads the RLD but needs to compare timestamps against an updated XSD and recompile it. You'll need to decide if there is any difference and if it is acceptable in your environment. In my experience, for most documents the portion of time during loading that takes the most time is the actual rendering of the XML in TagsOn or Normal view. Many things affect that but the most significant are the size of the XML file + complexity of CSS + CTM and any scripts that run at document load that either alter the XML source or change the appearance.