Package test.xml

Source Code of test.xml.TestXMLDocLoadListener

/*
* TestXMLDocLoadListener.java
*
* Created on 11 de enero de 2007, 10:28
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package test.xml;

import org.itsnat.core.tmpl.ItsNatDocFragmentTemplate;
import org.itsnat.core.ItsNatDocument;
import org.itsnat.core.ItsNatServletRequest;
import org.itsnat.core.ItsNatServletResponse;
import org.itsnat.core.domutil.ElementGroupManager;
import org.itsnat.core.domutil.ItsNatDOMUtil;
import org.itsnat.core.domutil.ElementList;
import org.itsnat.core.domutil.ItsNatTreeWalker;
import org.itsnat.core.event.ItsNatServletRequestListener;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.Element;

/**
*
* @author jmarranz
*/
public class TestXMLDocLoadListener implements ItsNatServletRequestListener
{

    /** Creates a new instance of TestXMLDocLoadListener */
    public TestXMLDocLoadListener()
    {
    }

    public void processRequest(ItsNatServletRequest request, ItsNatServletResponse response)
    {
        ItsNatDocument itsNatDoc = request.getItsNatDocument();
        Document doc = itsNatDoc.getDocument();

        Element cdListElem = ItsNatTreeWalker.getLastChildElement(doc.getDocumentElement());

        ItsNatDocFragmentTemplate docFragDesc = request.getItsNatServlet().getItsNatDocFragmentTemplate("test_xml_fragment");
        DocumentFragment fragment = docFragDesc.loadDocumentFragment(itsNatDoc);
        doc.getDocumentElement().insertBefore(fragment,cdListElem);

        ElementGroupManager factory = itsNatDoc.getElementGroupManager();
        ElementList discList = factory.createElementList(cdListElem,true);

        addCD("Help","The Beatles",new String[] {"A Hard Day's Night","Let It Be"},discList);
        addCD("Making Movies","Dire Straits",new String[] {"Tunnel Of Love","Romeo & Juliet"},discList);

        // Para testear serializaci�n de namespaces y createElementNS
        // En FireFox usar el "view source" porque tiene alg�n bug la visualizaci�n del XML

        String NAMESPACE = "http://prefix.org/prefix";
        Element parent = doc.createElement("parent");
        parent.setAttribute("xmlns:prefix",NAMESPACE);
        //String value = parent.getAttribute("xmlns:prefix");
        doc.getDocumentElement().appendChild(parent);
        Element child = doc.createElementNS(NAMESPACE,"child");
        parent.appendChild(child);
        child = doc.createElementNS(NAMESPACE,"prefix:child"); // Si fuera distinto de "prefix" dar�a error el navegador
        parent.appendChild(child);
    }

    public void addCD(String title,String artist,String[] songs,ElementList discList)
    {
        Element cdElem = discList.addElement();
        Element titleElem = ItsNatTreeWalker.getFirstChildElement(cdElem);
        ItsNatDOMUtil.setTextContent(titleElem,title);
        Element artistElem = ItsNatTreeWalker.getNextSiblingElement(titleElem);
        ItsNatDOMUtil.setTextContent(artistElem,artist);
        Element songsElem = ItsNatTreeWalker.getNextSiblingElement(artistElem);

        ItsNatDocument itsNatDoc = discList.getItsNatDocument();
        ElementGroupManager factory = itsNatDoc.getElementGroupManager();
        ElementList songList = factory.createElementList(songsElem,true);
        for(int i = 0; i < songs.length; i++)
        {
            songList.addElement(songs[i]);
        }
    }
}
TOP

Related Classes of test.xml.TestXMLDocLoadListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.