Altova Mailing List Archives>Archive Index >microsoft.public.xml Archive Home >Recent entries >Thread Prev - Re: XML Schema - 1 Element, Different Attributes, Can One Create Multiple Types? >Thread Next - Re: XML Schema - 1 Element, Different Attributes, Can One Create Multiple Types? Re: XML Schema - 1 Element, Different Attributes, Can One Create Multiple Types?To: NULL Date: 7/2/2009 9:47:00 AM On Wed, 1 Jul 2009 15:35:54 -0700 (PDT), MaggotChild <hsomob1999@y...> wrote: >On Jul 1, 7:57 am, "Neil Smith [MVP Digital Media]" <n...@nospam.com> >wrote: >> Hm I've had a think about this, and it's not obvious that XSD contains >> the feature you want (referencing the content of an attribute to >> determine the validation rule required) >> >> So it seems you may have to use a 2-pass approach. >> >> A way to consider it with XSL, would be to validate your primary >> document structure first. Then transforming the doc to include >> xsi:type based on each matching Detail node's Name attribute; and >> finally validating using the xsi:type specified > >The problem is that cost is a required element. > ><Detail Name="Cost" Value="25.99"/> > >becomes, say > ><Detail Name="Cost" Value="25.99" xsi:type="Cost"/> > >How do I say a certain XSI type is required? I don't think I can. A guy in a comment right at the bottom of this page http://norman.walsh.name/2004/01/29/trainwreck referred to a preceding comment stating XML schema or DTD can't do this (a step matching your proposal) but RelaxNG can. I don't know much about RelaxNG though. It seems from the little I know about Schematron, that you may just be able to embed the schematron rules in the XSD, then post-process (again a second step) using a Schematron processor - I know there's a class to do this I've seen written in PHP4 but not (so far) ported to PHP5 or 6. HTH Cheers - Neil ------------------------------------------------ Digital Media MVP : 2004-2009 http://mvp.support.microsoft.com/mvpfaqs | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
