  | Mailing List | | Home | | Forum Home | | JBoss - Java Application Server | | Tomcat - JSP/Servlet container | | Struts - A MVC web framework | | iText - An open source PDF Java Library | | JDOM - JDOM XML Parser | | JSP - A mailing list about Java Server Pages specification and reference | | J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition | | J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog | | Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology | |
Struts & Hibernate
|
|
|
  | | | Subject: Custom XML Validation | Subject: Custom XML Validation 2007-08-21 - By Kyle Cunningham
Back Hi -
I'm writing an XMLValidator tool that first parses a file against the schema (using Xerces) then runs custom xml checks if the build was successful. I'm using a SAXBuilder for this and just calling the build() method to parse the XML document. The additional checks include things like making sure the content of required elements is present, etc (I couldn't find a way to specify this in an XML schema).
My problem is that I am not able to determine the line number a "problem" element lives at within the xml document when I encounter something in the additional processing routine.
I tried throwing a SAXParseException and calling the getLineNumber() method, but the exception seems to have no knowledge of the document. I also read some stuff about using a SAXHandler and setting the document location, but I couldn't really get my head around it enough to understand how I could use it. I'm fairly new to JDOM. Is there any easy way to accomplish this?
Thanks for your time.
Kyle
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas -microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"> <meta name=Generator content="Microsoft Word 11 (filtered medium)"> <style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman";} a:link, span.MsoHyperlink {color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline;} span.EmailStyle17 {mso-style-type:personal-compose; font-family:Arial; color:windowtext;} @(protected) Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in;} div.Section1 {page:Section1;} --> </style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'>Hi – <o:p></o:p></span ></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span>< /font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'>I’m writing an XMLValidator tool that first parses a file against the schema (using Xerces) then runs custom xml checks if the build was successful. I’m using a SAXBuilder for this and just calling the build() method to parse the XML document. The additional checks include things like making sure the content of required elements is present, etc (I couldn’t find a way to specify this in an XML schema).<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span>< /font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'>My problem is that I am not able to determine the line number a “problem” element lives at within the xml document when I encounter something in the additional processing routine. <o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span>< /font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'>I tried throwing a SAXParseException and calling the getLineNumber() method, but the exception seems to have no knowledge of the document. I also read some stuff about using a SAXHandler and setting the document location, but I couldn’t really get my head around it enough to understand how I could use it. I’m fairly new to JDOM. Is there any easy way to accomplish this?<o:p></o:p></span>< /font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span>< /font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'>Thanks for your time.<o:p>< /o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span>< /font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'>Kyle<o:p></o:p></span></font ></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span>< /font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'> <o:p></o:p></span>< /font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span>< /font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'> <o:p></o:p></span>< /font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span>< /font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"> <span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span>< /font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p>
</div>
</body>
</html>
__ ____ ____ ____ ____ ____ ____ ____ ____ ____ To control your jdom-interest membership: http://www.jdom.org/mailman/options/jdom-interest/youraddr@(protected)
|
|
 |