Subject: RE: [xsl] Creation of DTD From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 19 Aug 2005 16:31:58 +0100 |
DTDs only allow you to constrain the order of elements by name, not by value. In fact even XML Schema, which goes further than DTDs in contraining what the values of elements and attributes can be, doesn't allow you to constrain the ordering based on values. To bring it back to be on-topic, it's often quite useful to use stylesheets for validation. Write template rules that produce error messages: <xsl:template match="row"> <xsl:if test="not(item[1]/@name='Price')"> <error>First item in row must be Price</error> </xsl:if> <xsl:if test="not(item[2]/@name='Item')"> <error>Second item in row must be Item</error> </xsl:if> etc. For a higher-level tool based on this approach, see Schematron. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Verakso [mailto:verakso@xxxxxxxxx] > Sent: 19 August 2005 14:24 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Creation of DTD > > I not quite sure if creation of DTD's is out of the scope of this > list, if so kindly point me in the right decision. > > My problem is, first I am a bit rusty in writing DTD's, second, I not > even sure I can do what I want with a DTD, perhaps a Schema was more > appropriate. > > The scenario is as follows. From a system, I get a CSV file, which is > converted into a XML file, like: > <data> > <row count="1"> > <item name="Price">5</item> > <item name="Item">Football</item> > <item name="SKU">1010</item> > </row> > <row count="2"> > <item name="Price">15</item> > <item name="Item">Basket Ball</item> > <item name="SKU">1012</item> > </row> > <row count="n"> > <item name="Price">10</item> > <item name="Item">ball</item> > <item name="SKU"></item> > </row> > </data> > > What I would like to do, is to make a DTD so I can check if the item > elements is present, and in that order. CSV is not at "strong" as XML, > and I would like to test up front, if the column names has been > changed in the CSV import. > > But AFAIK, it is not possible to write a DTD that specifies the order > and requirements of the name attributes, or am I wrong? > > /Thomas
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Creation of DTD, Mulberry Technologie | Thread | Re: [xsl] Creation of DTD, Verakso |
Re: [xsl] Oracle-->Cursor showing <, Peter Hickman | Date | RE: [xsl] Oracle-->Cursor showing <, Michael Kay |
Month |