<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" 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)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PlaceType"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="PlaceName"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="place"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"Courier New \;color\:black";
        panose-1:0 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";
        color:black;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
code
        {font-family:"Courier New";}
pre
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:Arial;
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Hi Paul,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Thanks for your response. I will take a
look at the Xpath code that you sent as sample but I am more interested in
knowing about JSPN support you mentioned. Could you please provide more details
or point me to some reference on it. I am going to display the ontology
contents on my web page using jsTree jQuery plug-in and making use of JSON
plugin for the same. So BioPortal web service support for JSPN sounds like it
might work with my implementation best. Please let me know more information of
you have on it.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Thank you,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Pradnya<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
color=black face="Times New Roman"><span style='font-size:12.0pt;color:windowtext'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 color=black face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma;color:windowtext;font-weight:bold'>From:</span></font></b><font
size=2 color=black face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma;
color:windowtext'> Paul R Alexander [mailto:palexander@stanford.edu] <br>
<b><span style='font-weight:bold'>Sent:</span></b> Friday, January 20, 2012
9:18 PM<br>
<b><span style='font-weight:bold'>To:</span></b> Pradnya Gawade<br>
<b><span style='font-weight:bold'>Cc:</span></b>
bioontology-support@lists.stanford.edu<br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [bioontology-support]
Parsing the BioPortal web service response</span></font><font color=black><span
style='color:windowtext'><o:p></o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 color=black face="Times New Roman"><span
style='font-size:12.0pt'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=3 color=black face="Times New Roman"><span
style='font-size:12.0pt'>Pradnya,<br>
<br>
You can use an XPath with the Document object in order to get nodes at a
particular level of the DOM hierarchy. Here is some untested sample code for
doing this using XML from the get terms service:<br>
</span></font><code><font size=2 color=white face="Courier New"><span
style='font-size:10.0pt;color:white'>  </span></font></code><code><font
size=2 face="Courier New"><span style='font-size:10.0pt'>XPath xpath = XPathFactory.newInstance().newXPath();</span></font></code><font
size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'><br>
</span></font><code><font size=2 color=white face="Courier New"><span
style='font-size:10.0pt;color:white'>  </span></font></code><code><font
size=2 face="Courier New"><span style='font-size:10.0pt'>XPathExpression expr = xpath.compile("/success/data/classBean");</span></font></code><font
size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'><br>
</span></font><code><font size=2 color=white face="Courier New"><span
style='font-size:10.0pt;color:white'>  </span></font></code><code><font
size=2 face="Courier New"><span style='font-size:10.0pt'>Object result = expr.evaluate(doc, XPathConstants.NODESET);</span></font></code><font
size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'><br>
</span></font><code><font size=2 color=white face="Courier New"><span
style='font-size:10.0pt;color:white'>  </span></font></code><code><font
size=2 face="Courier New"><span style='font-size:10.0pt'>NodeList nodes = (NodeList) result;</span></font></code><br>
<br>
Also, if you're more comfortable working with JSON then you can try our JSON
support, which is currently in alpha. To get results in JSON, just add an
"Accept: application/json" header to your request. This should work
for all of the Ontology Management services (IE for BioPortal, but not
Annotator or Resource Index).<br>
<br>
Best,<br>
Paul R Alexander<br>
Web / UI Developer<br>
NCBO BioPortal<br>
<st1:place w:st="on"><st1:PlaceName w:st="on">Stanford</st1:PlaceName> <st1:PlaceType
 w:st="on">Center</st1:PlaceType></st1:place> for Biomedical Informatics
Research<br>
<br>
<br>
On 1/20/12 6:23 AM, Pradnya Gawade wrote: <o:p></o:p></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'>Hello,<u1:p></u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'><u1:p> </u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'>I am planning to integrate my web application with
BioPortal by using REST web services API and would like to know more about how
people parse the web service response from BioPortal.<u1:p></u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'>Some where I found the sample code to parse these
xmls using DOM parser which I am using right now and it works for simple cases
but I think it is not reliable because it is difficult to handle nested
elements and things like this with this way where you fetch the elements using
methods like <i><span style='font-style:italic'>getElementsByTagName(String ..).<u1:p></u1:p></span></i></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'>Some sample code is here:<u1:p></u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'><u1:p> </u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=black
face="Courier New"><span style='black'><span style='font-size:10.0pt;
font-family:"Courier New"'>DocumentBuilderFactory docBuilderFactory =
DocumentBuilderFactory.<i><span style='font-style:italic'>newInstance</span></i>();</span></span></font><o:p></o:p></p>

<u1:p></u1:p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=black
face="Courier New"><span style='black'><span style='font-size:10.0pt;
font-family:"Courier New"'>DocumentBuilder docBuilder =
docBuilderFactory.newDocumentBuilder();</span></span></font><o:p></o:p></p>

<u1:p></u1:p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=black
face="Courier New"><span style='black'><span style='font-size:10.0pt;
font-family:"Courier New"'>Document doc =
docBuilder.parse(uri);                
</span></span></font><o:p></o:p></p>

<u1:p></u1:p>

<p class=MsoNormal><font size=2 color=black face="Courier New ;color:black"><span
style='font-size:10.0pt;font-family:"Courier New \;color\:black"'>doc.getDocumentElement().normalize();</span></font><o:p></o:p></p>

<u1:p></u1:p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'>NodeList listClassBean1 = doc.getElementsByTagName("classBean");<u1:p></u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'><u1:p> </u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'><u1:p> </u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><i><font size=2 color=black face=Arial><span
style='font-size:10.0pt;font-family:Arial;font-style:italic'> </span></font></i><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>I am not
able to specify the level of elements in the hierarchy I want to go up to as in
the BioPortal web service response, “classBean” is at multiple
levels. I am thinking there might be better ways to do this may be using APIs
like castor or some how making use of schema files. However BioPortal say they
do not provide schema files. Could any body please provide any suggests as to
how they are doing it? Presently I am planning to take a look at castor to see
how I can use it with BioPortal web services. <u1:p></u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'>I will really appreciate the quick response from some
body.<u1:p></u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'><u1:p> </u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=black face=Arial><span style='font-size:
10.0pt;font-family:Arial'>- Pradnya<u1:p></u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=3 color=black face="Times New Roman"><span
style='font-size:12.0pt'><br>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset><o:p></o:p></span></font></p>

<pre><font size=2 color=black face="Courier New"><span style='font-size:10.0pt'>_______________________________________________<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>bioontology-support mailing list<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'><a
href="mailto:bioontology-support@lists.stanford.edu">bioontology-support@lists.stanford.edu</a><o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'><a
href="https://mailman.stanford.edu/mailman/listinfo/bioontology-support">https://mailman.stanford.edu/mailman/listinfo/bioontology-support</a><o:p></o:p></span></font></pre></div>

</body>

</html>