[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] XSD Validation with XSLT
Subject: RE: [xsl] XSD Validation with XSLT From: "Robert Soesemann" <rsoesemann@xxxxxxxxxxx> Date: Fri, 10 Dec 2004 10:33:56 +0100 |
Hello Michael, Although this might be a good idea, I can't really go that way, because I want to do this without writing any custom code (e.g. Java handling Exceptions) Couldn't I just use document() to compare the current document with the XSDs requirements? Thanks in advance, Robert -----Original Message----- From: Michael Kay [mailto:mike@xxxxxxxxxxxx] Sent: Freitag, 10. Dezember 2004 10:27 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: [xsl] XSD Validation with XSLT Interesting! XSLT 2.0 takes you some of the way there, but not the whole way. You can validate an individual employee element in XSLT 2.0 like this: <xsl:template match="employee"> <xsl:copy-of select="." validation="strict"/> </xsl:template> but this leaves open the question of what happens if validation fails. According to the spec, any validation failure is a fatal error. Saxon has a switch (-vw on the command line) to treat validation failures instead as warnings. What it does in such cases is to notify the JAXP ErrorListener of the failure, and insert a comment into the output file to describe the validation error. It wouldn't be too difficult to go one step further and call some kind of user hook to attempt a repair - at least in particular well-defined cases. (This needs the schema-aware version of Saxon, of course) Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Robert Soesemann [mailto:rsoesemann@xxxxxxxxxxx] > Sent: 10 December 2004 08:42 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] XSD Validation with XSLT > > Hello, > > I guess my question might seem somewhat strange. The context > is, that I > need to bring in content into a CMS that will validate it againts XML > Schema files. Some of the XML files that I want to import might not > provide data where the datamodel of the CMS might require this. > > My idea was to validate the input against a xsd *by means of XSLT*. > This would *not need to validate the whole structure but only test > whether elements with unique names have a value or not. I a required > field is found to be empty a predefined value should be inserted. > (e.g. a -1 for xs:integer or n/a for xs:string) > > To give you an example of my structure: > XML: > ---- > <employee> > <name>Tom</name> > <id></id> <-- is required > <managedBy>Hans<managedBy> <-- is required > <manages>Frank</manages> > </employee> > > XSD: > ---- > <xs:element name="employee"> > <xs:complexType> > <xs:choice minOccurs="0" maxOccurs="1"> > <xs:element name="name" > type="xs:string"/> > <xs:element name="id" type="xs:string" > minOccurs="1"/> > ... > > > OUTPUT: > ------- > <employee> > <name>Tom</name> > <id>n/a</id> <-- is required > <managedBy>Hans<managedBy> <-- is required > <manages>Frank</manages> > </employee> > > Any help is very welcome. > > Robert
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSD Validation with XSLT, Jeni Tennison | Thread | RE: [xsl] XSD Validation with XSLT, Michael Kay |
RE: [xsl] XSD Validation with XSLT, Michael Kay | Date | RE: [xsl] XSD Validation with XSLT, Marian Olteanu |
Month |