Re: Best Practice - beyond schema
I would say there are at least six alternatives: 1) Make alternative schemas in each locale, using <redefine> or just copying and pasting. So you have many "standard" schemas for the same namespace floating around the world. 2) Make a general schema and then use Schematron (perhaps embedded in <appinfo> elements) for different additional constraints. You could use Schematron's phase mechanism to model the particular constraints applicable in each locale. You could use the document() function to retrieve a list maintained seperately from the schema giving parameters for the local profile, perhaps from a well-known site. 3) Use a different schema language (i.e. RELAX NG) that can change its content models depending on an attribute value. (However, I note that if you have constraints where the attribute is high up in the document and the variation is low down, I think you will need to duplicate all the intermediate declarations.) 4) Augment the schema language, such as with Francis' <stage> element, then generate particular schemas through a preprocessor. <ifdef> 5) Use different namespace for any elements that may be unused in different locales. Then your basic schema always holds. This does not model if some optional elements are required elsewhere. But why do you need to make a centralized decision? If each locale localizes the schema as it sees fit, why not delegate the decision on which technology fits to them, or even allow them to use alternatives within the same locale, depending on quality of the tools and their levels of expertise for example? Perhaps best practise is 6) to not force standardization where none is needed. For example, you might provide an open XSD schema with all alternatives available, which can validate any locale's documents to a certain extent, then give an example Schematron schema for a sample profile, to demonstrate nice layering and co-occurrence constraint checking. But then tell members that they are free to just take your XSD schema and hack that to taste, either using just an editor or <redefine>. Cheers Rick Jelliffe
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format