Changeset 183:8b0ec19c213c

Show
Ignore:
Timestamp:
09/25/08 10:02:01 (5 years ago)
Author:
jbarouh
Branch:
default
convert_revision:
svn:cdcfb263-7567-472c-a848-e2c2df3466e7/trunk@184
Message:

Also adds the contents which are in an unknown xml block.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • org/w3c/unicorn/response/parser/DefaultParser.java

    r177 r183  
    99import java.io.InputStream; 
    1010import java.io.PrintWriter; 
     11import java.math.BigInteger; 
    1112import java.net.URL; 
    1213import java.util.ArrayList; 
     
    1819import javax.xml.datatype.DatatypeFactory; 
    1920import javax.xml.datatype.XMLGregorianCalendar; 
     21import javax.xml.namespace.QName; 
    2022 
    2123import org.apache.commons.logging.Log; 
     
    6466                try { 
    6567                        org.w3.unicorn.observationresponse.ObservationresponseDocument ord = org.w3.unicorn.observationresponse.ObservationresponseDocument.Factory 
    66                                         .parse(r); 
     68                                .parse(r); 
     69                        /* 
     70                        File xml = new File("validator.xml"); 
     71                        BufferedReader fr = new BufferedReader(new FileReader(xml)); 
     72                        String s; 
     73                        String resp =""; 
     74                        while ((s=fr.readLine()) != null) { 
     75                                resp += s + "\n"; 
     76                        } 
     77                        //System.out.println(resp); 
     78                        fr.close(); 
     79                        org.w3.unicorn.observationresponse.ObservationresponseDocument ord = org.w3.unicorn.observationresponse.ObservationresponseDocument.Factory 
     80                        .parse(resp); 
     81                        */ 
    6782                        return swap(ord); 
    68                 } catch (XmlException e) { 
     83                } catch (Exception e) { 
    6984                        e.printStackTrace(); 
    7085                        return null; 
     
    365380                                } 
    366381 
    367                                 // If the class is not recognized, we check the name 
    368  
    369                                 // Case : A 
     382                                // If the class is not recognized, we check the name and eventually  
     383                                // build the corresponding object 
     384 
     385                                // Case : A from XmlAnyTypeImpl 
    370386                                else if (cursor.getName().toString().equals( 
    371387                                                "{http://www.w3.org/unicorn/observationresponse}a")) { 
     
    377393                                        coy.setHref(cursor.getTextValue()); 
    378394                                        cursor.toPrevToken(); 
    379                                         cursor.toNextAttribute(); 
     395                                        cursor.push(); 
    380396                                        content = swapObj(current, lang); 
     397                                        cursor.pop(); 
    381398                                        coy.setContent(content); 
    382399                                        list.add(coy); 
     
    386403                                                        count++; 
    387404                                        } 
     405                                        cursor.toEndToken(); 
     406                                        count--; 
    388407                                         
    389                                         cursor.toEndToken(); 
    390                                          
    391  
    392                                 } 
    393  
    394                                 // Case : Code 
     408                                } 
     409 
     410                                // Case : Code from XmlAnyTypeImpl 
    395411                                else if (cursor.getName().toString().equals( 
    396412                                                "{http://www.w3.org/unicorn/observationresponse}code")) { 
     413                                         
    397414                                        Code coy = new Code(); 
    398415                                        List<Object> content = new ArrayList<Object>(); 
     416                                        cursor.push(); 
    399417                                        content = swapObj(current, lang); 
     418                                        cursor.pop(); 
    400419                                        coy.setContent(content); 
    401420                                        list.add(coy); 
     
    404423                                                        count++; 
    405424                                        } 
    406                                         cursor.toEndToken(); 
    407                                 } 
    408  
    409                                 // Case : Img 
     425                                        cursor.toEndToken();  
     426                                        count--; 
     427                                } 
     428 
     429                                // Case : Img from XmlAnyTypeImpl 
    410430                                else if (cursor.getName().toString().equals( 
    411431                                                "{http://www.w3.org/unicorn/observationresponse}img")) { 
    412                                         org.w3.unicorn.observationresponse.ImgDocument.Img img = (org.w3.unicorn.observationresponse.ImgDocument.Img) current; 
     432                                         
     433                                        cursor.toNextToken(); 
     434 
    413435                                        Img coy = new Img(); 
    414                                         coy.setAlt(img.getAlt()); 
    415                                         coy.setHeight(img.getHeight()); 
    416                                         coy.setLongdesc(img.getLongdesc()); 
    417                                         coy.setName(img.getName()); 
    418                                         coy.setSrc(img.getSrc()); 
    419                                         coy.setWidth(img.getWidth()); 
    420                                         list.add(coy); 
    421  
    422                                         cursor.toEndToken(); 
     436                                        while (cursor.isAttr() && cursor.hasNextToken()) { 
     437                                                 
     438                                                if (cursor.getName().toString().equals("src"))  
     439                                                        coy.setSrc(cursor.getTextValue()); 
     440                                                else if (cursor.getName().toString().equals("alt"))  
     441                                                        coy.setAlt(cursor.getTextValue()); 
     442                                                else if (cursor.getName().toString().equals("longdesc"))  
     443                                                        coy.setLongdesc(cursor.getTextValue()); 
     444                                                else if (cursor.getName().toString().equals("name")) 
     445                                                        coy.setName(cursor.getTextValue()); 
     446                                                else if (cursor.getName().toString().equals("width")) 
     447                                                        coy.setWidth(new BigInteger(cursor.getTextValue())); 
     448                                                else if (cursor.getName().toString().equals("height")) 
     449                                                        coy.setHeight(new BigInteger(cursor.getTextValue())); 
     450                                                                                                         
     451                                                cursor.toNextToken(); 
     452                                        } 
     453                                        list.add(coy); 
     454                                        cursor.toEndToken(); 
     455                                        count--; 
     456 
    423457                                } 
    424458 
     
    426460                                // We still want to append what's inside a block even if the block's unknown 
    427461                                else { 
     462                                        cursor.push(); 
    428463                                        list.addAll(swapObj(current,lang)); 
    429                                         cursor.toEndToken(); 
     464                                        cursor.pop(); 
     465                                        cursor.toEndToken(); 
     466                                        count--; 
    430467                                } 
    431468                        } 
     
    439476                        else if (cursor.isEnd()) { 
    440477                                count--; 
    441                                 if (count < 0) 
     478                                if (count <= 0) 
    442479                                        break; 
    443480                        }