Devinsy integration for new ledb-admin project.
This commit is contained in:
parent
9daf9477c8
commit
ad6719da32
30 changed files with 17 additions and 6457 deletions
|
@ -63,7 +63,7 @@
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
|
||||||
<!-- *********** dotest ******** -->
|
<!-- *********** runtest ******** -->
|
||||||
<target name="test" depends="dist_test">
|
<target name="test" depends="dist_test">
|
||||||
<java classname="xid.test.Test" maxmemory="20m" fork="true">
|
<java classname="xid.test.Test" maxmemory="20m" fork="true">
|
||||||
<classpath>
|
<classpath>
|
||||||
|
|
|
@ -1,37 +1,39 @@
|
||||||
import java.util.*;
|
/**
|
||||||
import java.io.*;
|
* XidDemo
|
||||||
|
*/
|
||||||
|
|
||||||
import fr.devinsy.xid.*;
|
import fr.devinsy.xid.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class Demo
|
class XidDemo
|
||||||
{
|
{
|
||||||
static private org.apache.log4j.Logger log;
|
static private org.apache.log4j.Logger logger;
|
||||||
|
|
||||||
static
|
static
|
||||||
{
|
{
|
||||||
// Initialize log.
|
// Initialize logger.
|
||||||
org.apache.log4j.Logger log = null;
|
org.apache.log4j.Logger log = null;
|
||||||
|
|
||||||
org.apache.log4j.BasicConfigurator.configure ();
|
org.apache.log4j.BasicConfigurator.configure ();
|
||||||
|
|
||||||
|
|
||||||
log = org.apache.log4j.Logger.getRootLogger ();
|
log = org.apache.log4j.Logger.getRootLogger ();
|
||||||
//log.setLevel (org.apache.log4j.Level.INFO);
|
//logger.setLevel (org.apache.log4j.Level.INFO);
|
||||||
log.setLevel (org.apache.log4j.Level.INFO);
|
logger.setLevel (org.apache.log4j.Level.INFO);
|
||||||
|
|
||||||
log.info ("Enter");
|
logger.info ("Enter");
|
||||||
|
|
||||||
//
|
//
|
||||||
log.info ("Set the log file format...");
|
logger.info ("Set the log file format...");
|
||||||
|
|
||||||
|
|
||||||
// log = org.apache.log4j.Category.getInstance(Application.class.getName());
|
// log = org.apache.log4j.Category.getInstance(Application.class.getName());
|
||||||
log.info ("... done.");
|
logger.info ("... done.");
|
||||||
|
|
||||||
log.debug ("Exit");
|
logger.debug ("Exit");
|
||||||
log = org.apache.log4j.Logger.getLogger (Demo.class);
|
log = org.apache.log4j.Logger.getLogger (XidDemo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,79 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Note: no more AttrValue as in Brill, because the exception of style is managed
|
|
||||||
* in the attribute merging on the "style" string detection.
|
|
||||||
*/
|
|
||||||
public class Attributes extends HashMap<String, String>
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public Attributes ()
|
|
||||||
{
|
|
||||||
super ();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Useful for the merge attributes.
|
|
||||||
*/
|
|
||||||
public Attributes (Attributes attributes)
|
|
||||||
{
|
|
||||||
super (attributes);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setAttribute (String label, String value)
|
|
||||||
{
|
|
||||||
this.put (label, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Add a value to an existing value. This is useful to the 'style' attribute.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void appendAttribute (String label, String value)
|
|
||||||
{
|
|
||||||
if (this.containsKey (label))
|
|
||||||
{
|
|
||||||
this.put (label, this.get (label) + value);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.put (label, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public String getAttribute (String label)
|
|
||||||
{
|
|
||||||
String result;
|
|
||||||
|
|
||||||
if (this.containsKey (label))
|
|
||||||
{
|
|
||||||
result = this.get (label);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,383 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class Data
|
|
||||||
{
|
|
||||||
protected IdsDataById idsDataById;
|
|
||||||
protected TagsDataById tagsDataById;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public Data ()
|
|
||||||
{
|
|
||||||
this.idsDataById = new IdsDataById ();
|
|
||||||
this.tagsDataById = new TagsDataById ();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public IdsDataById getIdsDataById ()
|
|
||||||
{
|
|
||||||
IdsDataById result;
|
|
||||||
|
|
||||||
result = this.idsDataById;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public TagsDataById getTagsDataById ()
|
|
||||||
{
|
|
||||||
TagsDataById result;
|
|
||||||
|
|
||||||
result = this.tagsDataById;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public IdData getIdData (String id)
|
|
||||||
{
|
|
||||||
IdData result;
|
|
||||||
|
|
||||||
// Be sure that IdData is existing and get item.
|
|
||||||
result = (IdData) this.idsDataById.getId (id);
|
|
||||||
|
|
||||||
if (result == null)
|
|
||||||
{
|
|
||||||
this.idsDataById.setId (id, new IdData ());
|
|
||||||
|
|
||||||
result = (IdData) this.idsDataById.getId (id);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public IdData getIdData (String id, int line)
|
|
||||||
{
|
|
||||||
IdData result;
|
|
||||||
|
|
||||||
// Be sure that IdsData are existing.
|
|
||||||
IdsDataByIndex tags = (IdsDataByIndex) this.idsDataById.getId (id);
|
|
||||||
if (tags == null)
|
|
||||||
{
|
|
||||||
this.idsDataById.setId (id, new IdsDataByIndex ());
|
|
||||||
|
|
||||||
tags = (IdsDataByIndex) this.idsDataById.getId (id);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Be sure that lines are existing.
|
|
||||||
int nbLines = tags.size ();
|
|
||||||
for (int nLine = nbLines; nLine < line + 1; nLine++)
|
|
||||||
{
|
|
||||||
tags.add (nLine, new IdData ());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get item.
|
|
||||||
result = (IdData) tags.elementAt (line);
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public IdData getIdData (String id, int line, String column)
|
|
||||||
{
|
|
||||||
IdData result;
|
|
||||||
|
|
||||||
// Be sure that IdsData are existing.
|
|
||||||
IdsDataByIndex tags = (IdsDataByIndex) this.idsDataById.getId (id);
|
|
||||||
if (tags == null)
|
|
||||||
{
|
|
||||||
this.idsDataById.setId (id, new IdsDataByIndex ());
|
|
||||||
|
|
||||||
tags = (IdsDataByIndex) this.idsDataById.getId (id);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Be sure that lines are existing.
|
|
||||||
int nbLines = tags.size ();
|
|
||||||
for (int nLine = nbLines; nLine < line + 1; nLine++)
|
|
||||||
{
|
|
||||||
tags.add (nLine, new IdsDataById ());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get item.
|
|
||||||
IdsDataById lineData = (IdsDataById) tags.elementAt (line);
|
|
||||||
|
|
||||||
result = (IdData) lineData.get (column);
|
|
||||||
|
|
||||||
if (result == null)
|
|
||||||
{
|
|
||||||
lineData.put (column, new IdData ());
|
|
||||||
|
|
||||||
result = (IdData) lineData.get (column);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setIterationStrategy (String id, IdData.IterationStrategy strategy)
|
|
||||||
{
|
|
||||||
IdData tag = (IdData) this.getIdData (id);
|
|
||||||
|
|
||||||
tag.setIterationStrategy (strategy);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setContent (String id, String content)
|
|
||||||
{
|
|
||||||
if (id.startsWith ("<"))
|
|
||||||
{
|
|
||||||
String tagName = id.substring (1, id.length () - 1);
|
|
||||||
|
|
||||||
TagData tag = this.tagsDataById.getId (tagName);
|
|
||||||
if (tag == null)
|
|
||||||
{
|
|
||||||
tag = new TagData ();
|
|
||||||
this.tagsDataById.setId (tagName, tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
tag.setContent (content);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
IdData idData = this.getIdData (id);
|
|
||||||
|
|
||||||
idData.setContent (content);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setContent (String id, int content)
|
|
||||||
{
|
|
||||||
setContent (id, (new Integer (content)).toString ());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setContent (String id, int line, String content)
|
|
||||||
{
|
|
||||||
IdData tag = this.getIdData (id, line);
|
|
||||||
|
|
||||||
tag.setContent (content);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setContent (String id, int line, int content)
|
|
||||||
{
|
|
||||||
setContent (id, line, (new Integer (content)).toString ());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setContent (String id, int line, String column, String content)
|
|
||||||
{
|
|
||||||
IdData tag = this.getIdData (id, line, column);
|
|
||||||
|
|
||||||
tag.setContent (content);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setContent (String id, int line, String column, int content)
|
|
||||||
{
|
|
||||||
setContent (id, line, column, (new Integer (content)).toString ());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setAttribute (String id, String label, String value)
|
|
||||||
{
|
|
||||||
if (id.startsWith ("<"))
|
|
||||||
{
|
|
||||||
String tagName = id.substring (1, id.length () - 1);
|
|
||||||
|
|
||||||
TagData tag = this.tagsDataById.getId (tagName);
|
|
||||||
if (tag == null)
|
|
||||||
{
|
|
||||||
tag = new TagData ();
|
|
||||||
this.tagsDataById.setId (tagName, tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
tag.getAttributes ().setAttribute (label, value);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
IdData tag = this.getIdData (id);
|
|
||||||
|
|
||||||
tag.getAttributes ().setAttribute (label, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setAttribute (String id, String label, int value)
|
|
||||||
{
|
|
||||||
setAttribute (id, label, (new Integer (value)).toString ());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setAttribute (String id, int line, String label, String value)
|
|
||||||
{
|
|
||||||
IdData tag = this.getIdData (id, line);
|
|
||||||
|
|
||||||
tag.getAttributes ().setAttribute (label, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setAttribute (String id, int line, String label, int value)
|
|
||||||
{
|
|
||||||
setAttribute (id, line, label, (new Integer (value)).toString ());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setAttribute (String id, int line, String column, String label, String value)
|
|
||||||
{
|
|
||||||
IdData tag = this.getIdData (id, line, column);
|
|
||||||
|
|
||||||
tag.getAttributes ().setAttribute (label, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setAttribute (String id, int line, String column, String label, int value)
|
|
||||||
{
|
|
||||||
setAttribute (id, line, column, label, (new Integer (value)).toString ());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void appendAttribute (String id, int line, String column, String label, String value)
|
|
||||||
{
|
|
||||||
org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger (Data.class);
|
|
||||||
|
|
||||||
|
|
||||||
IdData tag = this.getIdData (id, line, column);
|
|
||||||
|
|
||||||
tag.getAttributes ().appendAttribute (label, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void appendAttribute (String id, String label, String value)
|
|
||||||
{
|
|
||||||
IdData tag = this.getIdData (id);
|
|
||||||
|
|
||||||
tag.getAttributes ().appendAttribute (label, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void appendAttribute (String id, String label, int value)
|
|
||||||
{
|
|
||||||
appendAttribute (id, label, (new Integer (value)).toString ());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void appendContent (String id, int line, String value)
|
|
||||||
{
|
|
||||||
IdData tag = this.getIdData (id, line);
|
|
||||||
|
|
||||||
tag.appendContent (value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void appendContent (String id, int line, int value)
|
|
||||||
{
|
|
||||||
appendContent (id, line, (new Integer (value)).toString ());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void appendContent (String id, int line, String column, String value)
|
|
||||||
{
|
|
||||||
IdData tag = this.getIdData (id, line, column);
|
|
||||||
|
|
||||||
tag.appendContent (value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void appendContent (String id, int line, String column, int value)
|
|
||||||
{
|
|
||||||
appendContent (id, line, column, (new Integer (value)).toString ());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,196 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
import javax.xml.parsers.*;
|
|
||||||
import javax.xml.transform.stream.StreamSource;
|
|
||||||
import javax.xml.validation.Schema;
|
|
||||||
import org.xml.sax.*;
|
|
||||||
import org.w3c.dom.*;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class DomPresenter extends Presenter
|
|
||||||
{
|
|
||||||
static final public char INDEX_SEPARATOR = '_';
|
|
||||||
|
|
||||||
static protected org.apache.log4j.Logger log;
|
|
||||||
static
|
|
||||||
{
|
|
||||||
log = org.apache.log4j.Logger.getLogger (DomPresenter.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
static protected String staticRootPath;
|
|
||||||
static
|
|
||||||
{
|
|
||||||
staticRootPath = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected String webappPath;
|
|
||||||
protected Document doc;
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public DomPresenter ()
|
|
||||||
{
|
|
||||||
this.webappPath = Presenter.staticRootPath;
|
|
||||||
this.doc = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public DomPresenter (Document doc)
|
|
||||||
{
|
|
||||||
this.webappPath = Presenter.staticRootPath;
|
|
||||||
this.doc = doc;
|
|
||||||
DomPresenter.addMetaTag (this.doc, "generator", "XID 0.0");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public DomPresenter (String webappPath, Document doc)
|
|
||||||
{
|
|
||||||
if ((webappPath == null) || (webappPath.equals ("")))
|
|
||||||
{
|
|
||||||
this.webappPath = Presenter.staticRootPath;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.webappPath = webappPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.doc = doc;
|
|
||||||
DomPresenter.addMetaTag (this.doc, "generator", "XID 0.0");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public String getWebappPath ()
|
|
||||||
{
|
|
||||||
String result;
|
|
||||||
|
|
||||||
result = this.webappPath;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setWebappPath (String path)
|
|
||||||
{
|
|
||||||
this.webappPath = path;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public Document getDom ()
|
|
||||||
{
|
|
||||||
Document result;
|
|
||||||
|
|
||||||
result = this.doc;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setDom (Document doc)
|
|
||||||
{
|
|
||||||
this.doc = doc;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setSource (Document doc)
|
|
||||||
{
|
|
||||||
this.doc = doc;
|
|
||||||
|
|
||||||
Presenter.addMetaTag (this.doc, "generator", "XID 0.0");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public Object getSource ()
|
|
||||||
{
|
|
||||||
Object result;
|
|
||||||
|
|
||||||
result = this.doc;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public StringBuffer doXid (Data datas, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
return (doXid (datas.getIdsDataById (), datas.getTagsDataById (), errorOutput));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public StringBuffer doXid (IdsDataById datas, TagsDataById tagsData, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
StringBuffer result;
|
|
||||||
|
|
||||||
if (this.doc == null)
|
|
||||||
{
|
|
||||||
String errorMessage = "source not defined";
|
|
||||||
errorOutput.append (errorMessage);
|
|
||||||
log.error (errorMessage);
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Build the web page.
|
|
||||||
result = Presenter.doXid (this.doc, datas, tagsData, this.webappPath, errorOutput);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Xid a file with data.
|
|
||||||
*/
|
|
||||||
static public StringBuffer doXid (Document doc, IdsDataById datas, String webappPath, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
return (doXid (doc, datas, null, webappPath, errorOutput));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Xid a file with data.
|
|
||||||
*/
|
|
||||||
static public StringBuffer doXid (Document doc, IdsDataById datas, TagsDataById tagsData, String webappPath, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
StringBuffer result;
|
|
||||||
|
|
||||||
result = Presenter.process (doc, datas, tagsData, webappPath, errorOutput);
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,170 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
import javax.xml.parsers.*;
|
|
||||||
import javax.xml.transform.stream.StreamSource;
|
|
||||||
import javax.xml.validation.Schema;
|
|
||||||
import org.xml.sax.*;
|
|
||||||
import org.w3c.dom.*;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class FilePresenter extends DomPresenter
|
|
||||||
{
|
|
||||||
static protected org.apache.log4j.Logger log;
|
|
||||||
static
|
|
||||||
{
|
|
||||||
log = org.apache.log4j.Logger.getLogger (FilePresenter.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String sourceFileName;
|
|
||||||
protected long sourceFileTime;
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public FilePresenter ()
|
|
||||||
{
|
|
||||||
this.webappPath = Presenter.staticRootPath;
|
|
||||||
this.sourceFileName = null;
|
|
||||||
this.sourceFileTime = 0;
|
|
||||||
this.doc = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public FilePresenter (String fileName)
|
|
||||||
{
|
|
||||||
this.webappPath = Presenter.staticRootPath;
|
|
||||||
this.sourceFileName = fileName;
|
|
||||||
this.sourceFileTime = 0;
|
|
||||||
this.doc = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public FilePresenter (String webappPath, String fileName)
|
|
||||||
{
|
|
||||||
if ((webappPath == null) || (webappPath.equals ("")))
|
|
||||||
{
|
|
||||||
this.webappPath = Presenter.staticRootPath;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.webappPath = webappPath;
|
|
||||||
}
|
|
||||||
this.sourceFileName = fileName;
|
|
||||||
this.sourceFileTime = 0;
|
|
||||||
this.doc = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setSource (String fileName)
|
|
||||||
{
|
|
||||||
this.sourceFileName = fileName;
|
|
||||||
this.sourceFileTime = 0;
|
|
||||||
this.doc = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public String getSource ()
|
|
||||||
{
|
|
||||||
String result;
|
|
||||||
|
|
||||||
result = this.sourceFileName;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public StringBuffer doXid (Data datas, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
return (doXid (datas.getIdsDataById (), datas.getTagsDataById (), errorOutput));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public StringBuffer doXid (IdsDataById datas, TagsDataById tagsData, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
StringBuffer result;
|
|
||||||
|
|
||||||
String sourceFilePath = this.webappPath + File.separator + this.sourceFileName;
|
|
||||||
|
|
||||||
// Get the good tree.
|
|
||||||
File source = new File (sourceFilePath);
|
|
||||||
|
|
||||||
if (source == null)
|
|
||||||
{
|
|
||||||
String errorMessage = "source file not defined";
|
|
||||||
errorOutput.append (errorMessage);
|
|
||||||
log.error (errorMessage);
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
else if (!source.exists ())
|
|
||||||
{
|
|
||||||
String errorMessage = "source file defined but not found (" + sourceFilePath + ")";
|
|
||||||
errorOutput.append (errorMessage);
|
|
||||||
log.error (errorMessage);
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
else if ((this.doc == null) ||
|
|
||||||
(this.sourceFileTime != source.lastModified ()))
|
|
||||||
{
|
|
||||||
this.sourceFileTime = source.lastModified ();
|
|
||||||
this.doc = Presenter.fileToTree (sourceFilePath, errorOutput);
|
|
||||||
|
|
||||||
if (this.doc != null)
|
|
||||||
{
|
|
||||||
Presenter.addMetaTag (doc, "generator", "XID 0.0");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Build the web page.
|
|
||||||
result = Presenter.doXid (doc, datas, tagsData, this.webappPath, errorOutput);
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Xid a file without data.
|
|
||||||
*/
|
|
||||||
static public StringBuffer doXid (String fileName, String webappPath, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
StringBuffer result;
|
|
||||||
|
|
||||||
Document doc = Presenter.fileToTree (fileName, errorOutput);
|
|
||||||
|
|
||||||
if (doc == null)
|
|
||||||
{
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Presenter.addMetaTag (doc, "generator", "XID 0.0");
|
|
||||||
|
|
||||||
result = Presenter.doXid (doc, null, null, webappPath, errorOutput);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,177 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* IdData class is used to hold application data and
|
|
||||||
* the business logic that operates on the data.
|
|
||||||
*
|
|
||||||
* The only requirement of a IdData class is that it must implement a
|
|
||||||
* display method. The display method must return a text representation
|
|
||||||
* of the data, suitable for display in a web page.
|
|
||||||
*
|
|
||||||
* XID provides a User Input IdData, Text IdData and ...
|
|
||||||
* application may also implement it's own IdData classes.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class IdData implements Serializable, IdDataCore
|
|
||||||
{
|
|
||||||
public enum IterationStrategy {ONLY_FIRST_ROW, ONLY_FIRST_TWO_ROWS, ONLY_ROWS_WITH_ID, ONLY_ROWS_WITHOUT_ID, ALL_ROWS}
|
|
||||||
|
|
||||||
protected IterationStrategy iterationStrategy;
|
|
||||||
|
|
||||||
|
|
||||||
public enum MODE {REPLACE, APPEND, IGNORE};
|
|
||||||
|
|
||||||
protected Attributes attributes;
|
|
||||||
protected boolean excludeSection;
|
|
||||||
protected MODE displayMode = MODE.REPLACE;
|
|
||||||
protected String content;
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public IdData ()
|
|
||||||
{
|
|
||||||
this.attributes = null;
|
|
||||||
this.excludeSection = false;
|
|
||||||
this.displayMode = MODE.REPLACE;
|
|
||||||
this.content = null;
|
|
||||||
this.iterationStrategy = IterationStrategy.ALL_ROWS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public IdData (String text)
|
|
||||||
{
|
|
||||||
this.attributes = null;
|
|
||||||
this.excludeSection = false;
|
|
||||||
this.displayMode = MODE.REPLACE;
|
|
||||||
this.content = text;
|
|
||||||
this.iterationStrategy = IterationStrategy.ALL_ROWS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public String display ()
|
|
||||||
{
|
|
||||||
String result;
|
|
||||||
|
|
||||||
result = this.content;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setContent (String text)
|
|
||||||
{
|
|
||||||
this.content = text;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void appendContent (String text)
|
|
||||||
{
|
|
||||||
if (this.content == null)
|
|
||||||
{
|
|
||||||
this.content = text;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.content += text;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setDisplayMode(MODE displayMode)
|
|
||||||
{
|
|
||||||
this.displayMode = displayMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public MODE getDisplayMode()
|
|
||||||
{
|
|
||||||
MODE result;
|
|
||||||
|
|
||||||
result = this.displayMode;
|
|
||||||
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public Attributes getAttributes ()
|
|
||||||
{
|
|
||||||
Attributes result;
|
|
||||||
|
|
||||||
if (this.attributes == null)
|
|
||||||
{
|
|
||||||
this.attributes = new Attributes ();
|
|
||||||
}
|
|
||||||
|
|
||||||
result = this.attributes;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setExcludeSection(boolean excludeSection)
|
|
||||||
{
|
|
||||||
this.excludeSection = excludeSection;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public boolean getExcludeSection()
|
|
||||||
{
|
|
||||||
return excludeSection;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setIterationStrategy (IterationStrategy strategy)
|
|
||||||
{
|
|
||||||
this.iterationStrategy = strategy;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public IterationStrategy getIterationStrategy ()
|
|
||||||
{
|
|
||||||
IterationStrategy result;
|
|
||||||
|
|
||||||
result = this.iterationStrategy;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Xid uses three class to describe data:
|
|
||||||
* - TagData
|
|
||||||
* - TagsData
|
|
||||||
* - TagsDataById
|
|
||||||
* Others class that doesn't extends these won't be use by Xid.
|
|
||||||
*
|
|
||||||
* This interface helps to express this fact.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public interface IdDataCore
|
|
||||||
{
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class IdsDataById extends HashMap<String, IdDataCore> implements IdDataCore
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public IdsDataById ()
|
|
||||||
{
|
|
||||||
super ();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setId (String id, IdDataCore data)
|
|
||||||
{
|
|
||||||
this.put (id, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public IdDataCore getId (String id)
|
|
||||||
{
|
|
||||||
IdDataCore result;
|
|
||||||
|
|
||||||
result = this.get (id);
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class IdsDataByIndex extends Vector<IdDataCore> implements IdDataCore
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public IdsDataByIndex ()
|
|
||||||
{
|
|
||||||
super ();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,159 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import org.xml.sax.*;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extract from org.xml.sax Interface ErrorHandler:
|
|
||||||
* "If a SAX application needs to implement customized error handling,
|
|
||||||
* it must implement this interface and then register an instance with
|
|
||||||
* the XML reader using the setErrorHandler method. The parser will
|
|
||||||
* then report all errors and warnings through this interface."
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class ParserErrorHandler implements ErrorHandler
|
|
||||||
{
|
|
||||||
Vector<String> messages;
|
|
||||||
int fatalErrorsCount;
|
|
||||||
int errorsCount;
|
|
||||||
int warningCount;
|
|
||||||
|
|
||||||
public ParserErrorHandler ()
|
|
||||||
{
|
|
||||||
fatalErrorsCount = 0;
|
|
||||||
errorsCount = 0;
|
|
||||||
warningCount = 0;
|
|
||||||
messages = new Vector<String> ();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public int fatalErrorsCount ()
|
|
||||||
{
|
|
||||||
int result;
|
|
||||||
|
|
||||||
result = this.fatalErrorsCount;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public int errorsCount ()
|
|
||||||
{
|
|
||||||
int result;
|
|
||||||
|
|
||||||
result = this.errorsCount;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public int warningCount ()
|
|
||||||
{
|
|
||||||
int result;
|
|
||||||
|
|
||||||
result = this.warningCount;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public int allErrorsCount ()
|
|
||||||
{
|
|
||||||
int result;
|
|
||||||
|
|
||||||
result = fatalErrorsCount () + errorsCount () + warningCount ();
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public boolean hasError ()
|
|
||||||
{
|
|
||||||
boolean result;
|
|
||||||
|
|
||||||
if (allErrorsCount () == 0)
|
|
||||||
{
|
|
||||||
result = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called by the XML parser to handle fatal errors.
|
|
||||||
* @param ex Parse Excpetion. Contains the warning text and the line number.
|
|
||||||
*/
|
|
||||||
public void error (SAXParseException exception)
|
|
||||||
{
|
|
||||||
String message = "Error at line " + exception.getLineNumber() + " : " + exception.getMessage();
|
|
||||||
|
|
||||||
this.errorsCount += 1;
|
|
||||||
this.messages.add (message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called by the XML parser to handle fatal errors.
|
|
||||||
* @param ex Parse Excpetion. Contains the error text and the line number.
|
|
||||||
* When a fatal parse error occurs, the parse does not return a document.
|
|
||||||
*/
|
|
||||||
public void fatalError (SAXParseException exception)
|
|
||||||
{
|
|
||||||
String message = "Fatal error at line " + exception.getLineNumber() + " : " + exception.getMessage();
|
|
||||||
|
|
||||||
this.fatalErrorsCount += 1;
|
|
||||||
this.messages.add (message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called by the XML parser to handle warnings.
|
|
||||||
* @param ex Parse Excpetion. Contains the warning text and the line number.
|
|
||||||
*/
|
|
||||||
public void warning(SAXParseException exception)
|
|
||||||
{
|
|
||||||
String message = "Warning at line " + exception.getLineNumber() + " : " + exception.getMessage();
|
|
||||||
|
|
||||||
this.warningCount += 1;
|
|
||||||
this.messages.add (message);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public String toString ()
|
|
||||||
{
|
|
||||||
StringBuffer result;
|
|
||||||
|
|
||||||
result = new StringBuffer ();
|
|
||||||
|
|
||||||
for (String message : messages)
|
|
||||||
{
|
|
||||||
result.append (message);
|
|
||||||
result.append ('\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result.toString ());
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,198 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
import javax.xml.parsers.*;
|
|
||||||
import javax.xml.transform.stream.StreamSource;
|
|
||||||
import javax.xml.validation.Schema;
|
|
||||||
import org.xml.sax.*;
|
|
||||||
import org.w3c.dom.*;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class StringPresenter extends DomPresenter
|
|
||||||
{
|
|
||||||
static protected org.apache.log4j.Logger log;
|
|
||||||
static
|
|
||||||
{
|
|
||||||
log = org.apache.log4j.Logger.getLogger (StringPresenter.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String html;
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public StringPresenter ()
|
|
||||||
{
|
|
||||||
super ();
|
|
||||||
this.webappPath = Presenter.staticRootPath;
|
|
||||||
this.doc = null;
|
|
||||||
this.html = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public StringPresenter (String html)
|
|
||||||
{
|
|
||||||
this.webappPath = Presenter.staticRootPath;
|
|
||||||
this.doc = null;
|
|
||||||
this.html = html;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public StringPresenter (String webappPath, String html)
|
|
||||||
{
|
|
||||||
if ((webappPath == null) || (webappPath.equals ("")))
|
|
||||||
{
|
|
||||||
this.webappPath = Presenter.staticRootPath;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.webappPath = webappPath;
|
|
||||||
}
|
|
||||||
this.doc = null;
|
|
||||||
this.html = html;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setSource (String html)
|
|
||||||
{
|
|
||||||
this.html = html;
|
|
||||||
this.doc = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public String getSource ()
|
|
||||||
{
|
|
||||||
String result;
|
|
||||||
|
|
||||||
result = this.html;
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public StringBuffer doXid (Data datas, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
return (doXid (datas.getIdsDataById (), datas.getTagsDataById (), errorOutput));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public StringBuffer doXid (IdsDataById datas, TagsDataById tagsData, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
StringBuffer result;
|
|
||||||
|
|
||||||
if (this.doc == null)
|
|
||||||
{
|
|
||||||
// Build doc from this.html.
|
|
||||||
String htmlSource;
|
|
||||||
if ((this.html.startsWith ("<!DOCTYPE")) ||
|
|
||||||
(this.html.startsWith ("<!doctype")) ||
|
|
||||||
(this.html.startsWith ("<html>")) ||
|
|
||||||
(this.html.startsWith ("<HTML>")))
|
|
||||||
{
|
|
||||||
htmlSource = html;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
htmlSource = "<html><head></head><body>\n" + html + "</body></html>";
|
|
||||||
}
|
|
||||||
|
|
||||||
// StringBufferInputStream is deprecated so we use another solution.
|
|
||||||
// (see http://www.developpez.net/forums/archive/index.php/t-14101.html).
|
|
||||||
doc = buildTree (new ByteArrayInputStream (htmlSource.getBytes ()), errorOutput);
|
|
||||||
}
|
|
||||||
|
|
||||||
StringBuffer htmlTarget;
|
|
||||||
htmlTarget = Presenter.doXid (doc, datas, tagsData, this.webappPath, errorOutput);
|
|
||||||
|
|
||||||
if (htmlTarget == null)
|
|
||||||
{
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
else if ((this.html.startsWith ("<!DOCTYPE")) ||
|
|
||||||
(this.html.startsWith ("<!doctype")) ||
|
|
||||||
(this.html.startsWith ("<html>")) ||
|
|
||||||
(this.html.startsWith ("<HTML>")))
|
|
||||||
{
|
|
||||||
result = htmlTarget;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
String bodyContent = extractBodyContent (htmlTarget);
|
|
||||||
|
|
||||||
if (bodyContent == null)
|
|
||||||
{
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = new StringBuffer (bodyContent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
static public StringBuffer doXid (String html, Data datas, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
return (doXid (html, datas.getIdsDataById (), datas.getTagsDataById (), "", errorOutput));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
static public StringBuffer doXid (String html, Data datas, String webappPath, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
return (doXid (html, datas.getIdsDataById (), datas.getTagsDataById (), webappPath, errorOutput));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Xid a string with html in.
|
|
||||||
*/
|
|
||||||
static public StringBuffer doXid (String html, IdsDataById datas, String webappPath, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
return (doXid (html, datas, null, webappPath, errorOutput));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Xid a string with html in.
|
|
||||||
*/
|
|
||||||
static public StringBuffer doXid (String html, IdsDataById datas, TagsDataById tagsData, String webappPath, StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
StringBuffer result;
|
|
||||||
|
|
||||||
StringPresenter presenter = new StringPresenter (webappPath, html);
|
|
||||||
|
|
||||||
result = presenter.doXid (datas, tagsData, errorOutput);
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* IdData class is used to hold application data and
|
|
||||||
* the business logic that operates on the data.
|
|
||||||
*
|
|
||||||
* The only requirement of a IdData class is that it must implement a
|
|
||||||
* display method. The display method must return a text representation
|
|
||||||
* of the data, suitable for display in a web page.
|
|
||||||
*
|
|
||||||
* XID provides a User Input IdData, Text IdData and ...
|
|
||||||
* application may also implement it's own IdData classes.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class TagData extends IdData implements Serializable
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public TagData ()
|
|
||||||
{
|
|
||||||
super ();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public TagData (String text)
|
|
||||||
{
|
|
||||||
super (text);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
package xid;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class TagsDataById extends HashMap<String, TagData>
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public TagsDataById ()
|
|
||||||
{
|
|
||||||
super ();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setId (String id, TagData data)
|
|
||||||
{
|
|
||||||
this.put (id, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public TagData getId (String id)
|
|
||||||
{
|
|
||||||
TagData result;
|
|
||||||
|
|
||||||
result = this.get (id);
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,79 +0,0 @@
|
||||||
<!DOCTYPE html SYSTEM "xhtml1-transitional.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>test</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
Test 01: No id attribute
|
|
||||||
XHTML: Hello <b title="a">world</b>.
|
|
||||||
no Java code
|
|
||||||
Result: Hello <b title="a">world</b>.
|
|
||||||
|
|
||||||
Test 02: id attribute with empty model
|
|
||||||
XHTML: Hello <b id="test02-original" title="b">world</b>.
|
|
||||||
no Java code
|
|
||||||
Result: Hello <b id="test02" title="b">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 03: model changing the text
|
|
||||||
XHTML: Hello <b id="test03-original" title="c">world</b>.
|
|
||||||
// Populate attributes of Test 03.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().appendAttribute ("style", "background: blue;");
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "totoClass");
|
|
||||||
text.setText ("mummy");
|
|
||||||
datas.put ("test03", text);
|
|
||||||
Result: Hello <b id="test03" title="c">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 04: model changing title
|
|
||||||
XHTML: Hello <b id="test04-original" title="d">world</b>.
|
|
||||||
// Populate attributes of Test 04.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().setAttribute ("title", "another title");
|
|
||||||
datas.put ("test04", text);
|
|
||||||
Result: Hello <b id="test04" title="d">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 05: model adding style attributes
|
|
||||||
XHTML: Hello <b id="test05-original" title="d">world</b>.
|
|
||||||
// Populate attributes of Test 05.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().appendAttribute ("style", "background: blue;");
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "aClass");
|
|
||||||
datas.put ("test05", text);
|
|
||||||
Result: Hello <b id="test05" title="d">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 06: model appending style attributes
|
|
||||||
XHTML: Hello <b id="test06-original" title="d" style="background:yellow;">world</b>.
|
|
||||||
// Populate attributes of Test 06.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "aClass");
|
|
||||||
datas.put ("test06", text);
|
|
||||||
Result: Hello <b id="test06" title="d" style="background:yellow;">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 07: image
|
|
||||||
XHTML: A picture <img id="test07-original" src="http://www.ocmland.org/tmp/floatingb.jpg" alt="pinguoin flottant" />.
|
|
||||||
// Populate attributes of Test 07.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().setAttribute ("width", "50%");
|
|
||||||
datas.put ("test07", text);
|
|
||||||
Result: A picture <img id="test07" src="http://www.ocmland.org/tmp/floatingb.jpg" alt="pinguoin flottant" />.
|
|
||||||
|
|
||||||
|
|
||||||
Test 08: xhtml source contains no display order in a tag.
|
|
||||||
XHTML: Hello <b class="xid:nodisplay_">you</b> there.
|
|
||||||
Result: Hello <b class="xid:nodisplay">you</b> there.
|
|
||||||
|
|
||||||
|
|
||||||
Test 09: dynamic addition of the nodisplay order.
|
|
||||||
XHTML: Hello <b id="test09-original">you</b> there.
|
|
||||||
Result: Hello <b id="test09">you</b> there.
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,69 +0,0 @@
|
||||||
<!DOCTYPE html SYSTEM "xhtml1-transitional.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>test</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
Test 01: No id attribute
|
|
||||||
XHTML: Hello <b title="a">world</b>.
|
|
||||||
no Java code
|
|
||||||
Result: Hello <b title="a">world</b>.
|
|
||||||
|
|
||||||
Test 02: id attribute with empty model
|
|
||||||
XHTML: Hello <b id="test02-original" title="b">world</b>.
|
|
||||||
no Java code
|
|
||||||
Result: Hello <b id="test02" title="b">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 03: model changing the text
|
|
||||||
XHTML: Hello <b id="test03-original" title="c">world</b>.
|
|
||||||
// Populate attributes of Test 03.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().appendAttribute ("style", "background: blue;");
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "totoClass");
|
|
||||||
text.setText ("mummy");
|
|
||||||
datas.put ("test03", text);
|
|
||||||
Result: Hello <b id="test03" title="c">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 04: model changing title
|
|
||||||
XHTML: Hello <b id="test04-original" title="d">world</b>.
|
|
||||||
// Populate attributes of Test 04.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().setAttribute ("title", "another title");
|
|
||||||
datas.put ("test04", text);
|
|
||||||
Result: Hello <b id="test04" title="d">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 05: model adding style attributes
|
|
||||||
XHTML: Hello <b id="test05-original" title="d">world</b>.
|
|
||||||
// Populate attributes of Test 05.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().appendAttribute ("style", "background: blue;");
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "aClass");
|
|
||||||
datas.put ("test05", text);
|
|
||||||
Result: Hello <b id="test05" title="d">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 06: model appending style attributes
|
|
||||||
XHTML: Hello <b id="test06-original" title="d" style="background:yellow;">world</b>.
|
|
||||||
// Populate attributes of Test 06.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "aClass");
|
|
||||||
datas.put ("test06", text);
|
|
||||||
Result: Hello <b id="test06" title="d" style="background:yellow;">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 07: image
|
|
||||||
XHTML: A picture <img id="test07-original" src="http://www.ocmland.org/tmp/floatingb.jpg" alt="pinguoin flottant" />.
|
|
||||||
// Populate attributes of Test 07.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().setAttribute ("width", "50%");
|
|
||||||
datas.put ("test07", text);
|
|
||||||
Result: A picture <img id="test07" src="http://www.ocmland.org/tmp/floatingb.jpg" alt="pinguoin flottant" />.
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,196 +0,0 @@
|
||||||
<!-- Portions (C) International Organization for Standardization 1986
|
|
||||||
Permission to copy in any form is granted for use with
|
|
||||||
conforming SGML systems and applications as defined in
|
|
||||||
ISO 8879, provided this notice is included in all copies.
|
|
||||||
-->
|
|
||||||
<!-- Character entity set. Typical invocation:
|
|
||||||
<!ENTITY % HTMLlat1 PUBLIC
|
|
||||||
"-//W3C//ENTITIES Latin 1 for XHTML//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
|
|
||||||
%HTMLlat1;
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!ENTITY nbsp " "> <!-- no-break space = non-breaking space,
|
|
||||||
U+00A0 ISOnum -->
|
|
||||||
<!ENTITY iexcl "¡"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
|
|
||||||
<!ENTITY cent "¢"> <!-- cent sign, U+00A2 ISOnum -->
|
|
||||||
<!ENTITY pound "£"> <!-- pound sign, U+00A3 ISOnum -->
|
|
||||||
<!ENTITY curren "¤"> <!-- currency sign, U+00A4 ISOnum -->
|
|
||||||
<!ENTITY yen "¥"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
|
|
||||||
<!ENTITY brvbar "¦"> <!-- broken bar = broken vertical bar,
|
|
||||||
U+00A6 ISOnum -->
|
|
||||||
<!ENTITY sect "§"> <!-- section sign, U+00A7 ISOnum -->
|
|
||||||
<!ENTITY uml "¨"> <!-- diaeresis = spacing diaeresis,
|
|
||||||
U+00A8 ISOdia -->
|
|
||||||
<!ENTITY copy "©"> <!-- copyright sign, U+00A9 ISOnum -->
|
|
||||||
<!ENTITY ordf "ª"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
|
|
||||||
<!ENTITY laquo "«"> <!-- left-pointing double angle quotation mark
|
|
||||||
= left pointing guillemet, U+00AB ISOnum -->
|
|
||||||
<!ENTITY not "¬"> <!-- not sign = angled dash,
|
|
||||||
U+00AC ISOnum -->
|
|
||||||
<!ENTITY shy "­"> <!-- soft hyphen = discretionary hyphen,
|
|
||||||
U+00AD ISOnum -->
|
|
||||||
<!ENTITY reg "®"> <!-- registered sign = registered trade mark sign,
|
|
||||||
U+00AE ISOnum -->
|
|
||||||
<!ENTITY macr "¯"> <!-- macron = spacing macron = overline
|
|
||||||
= APL overbar, U+00AF ISOdia -->
|
|
||||||
<!ENTITY deg "°"> <!-- degree sign, U+00B0 ISOnum -->
|
|
||||||
<!ENTITY plusmn "±"> <!-- plus-minus sign = plus-or-minus sign,
|
|
||||||
U+00B1 ISOnum -->
|
|
||||||
<!ENTITY sup2 "²"> <!-- superscript two = superscript digit two
|
|
||||||
= squared, U+00B2 ISOnum -->
|
|
||||||
<!ENTITY sup3 "³"> <!-- superscript three = superscript digit three
|
|
||||||
= cubed, U+00B3 ISOnum -->
|
|
||||||
<!ENTITY acute "´"> <!-- acute accent = spacing acute,
|
|
||||||
U+00B4 ISOdia -->
|
|
||||||
<!ENTITY micro "µ"> <!-- micro sign, U+00B5 ISOnum -->
|
|
||||||
<!ENTITY para "¶"> <!-- pilcrow sign = paragraph sign,
|
|
||||||
U+00B6 ISOnum -->
|
|
||||||
<!ENTITY middot "·"> <!-- middle dot = Georgian comma
|
|
||||||
= Greek middle dot, U+00B7 ISOnum -->
|
|
||||||
<!ENTITY cedil "¸"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
|
|
||||||
<!ENTITY sup1 "¹"> <!-- superscript one = superscript digit one,
|
|
||||||
U+00B9 ISOnum -->
|
|
||||||
<!ENTITY ordm "º"> <!-- masculine ordinal indicator,
|
|
||||||
U+00BA ISOnum -->
|
|
||||||
<!ENTITY raquo "»"> <!-- right-pointing double angle quotation mark
|
|
||||||
= right pointing guillemet, U+00BB ISOnum -->
|
|
||||||
<!ENTITY frac14 "¼"> <!-- vulgar fraction one quarter
|
|
||||||
= fraction one quarter, U+00BC ISOnum -->
|
|
||||||
<!ENTITY frac12 "½"> <!-- vulgar fraction one half
|
|
||||||
= fraction one half, U+00BD ISOnum -->
|
|
||||||
<!ENTITY frac34 "¾"> <!-- vulgar fraction three quarters
|
|
||||||
= fraction three quarters, U+00BE ISOnum -->
|
|
||||||
<!ENTITY iquest "¿"> <!-- inverted question mark
|
|
||||||
= turned question mark, U+00BF ISOnum -->
|
|
||||||
<!ENTITY Agrave "À"> <!-- latin capital letter A with grave
|
|
||||||
= latin capital letter A grave,
|
|
||||||
U+00C0 ISOlat1 -->
|
|
||||||
<!ENTITY Aacute "Á"> <!-- latin capital letter A with acute,
|
|
||||||
U+00C1 ISOlat1 -->
|
|
||||||
<!ENTITY Acirc "Â"> <!-- latin capital letter A with circumflex,
|
|
||||||
U+00C2 ISOlat1 -->
|
|
||||||
<!ENTITY Atilde "Ã"> <!-- latin capital letter A with tilde,
|
|
||||||
U+00C3 ISOlat1 -->
|
|
||||||
<!ENTITY Auml "Ä"> <!-- latin capital letter A with diaeresis,
|
|
||||||
U+00C4 ISOlat1 -->
|
|
||||||
<!ENTITY Aring "Å"> <!-- latin capital letter A with ring above
|
|
||||||
= latin capital letter A ring,
|
|
||||||
U+00C5 ISOlat1 -->
|
|
||||||
<!ENTITY AElig "Æ"> <!-- latin capital letter AE
|
|
||||||
= latin capital ligature AE,
|
|
||||||
U+00C6 ISOlat1 -->
|
|
||||||
<!ENTITY Ccedil "Ç"> <!-- latin capital letter C with cedilla,
|
|
||||||
U+00C7 ISOlat1 -->
|
|
||||||
<!ENTITY Egrave "È"> <!-- latin capital letter E with grave,
|
|
||||||
U+00C8 ISOlat1 -->
|
|
||||||
<!ENTITY Eacute "É"> <!-- latin capital letter E with acute,
|
|
||||||
U+00C9 ISOlat1 -->
|
|
||||||
<!ENTITY Ecirc "Ê"> <!-- latin capital letter E with circumflex,
|
|
||||||
U+00CA ISOlat1 -->
|
|
||||||
<!ENTITY Euml "Ë"> <!-- latin capital letter E with diaeresis,
|
|
||||||
U+00CB ISOlat1 -->
|
|
||||||
<!ENTITY Igrave "Ì"> <!-- latin capital letter I with grave,
|
|
||||||
U+00CC ISOlat1 -->
|
|
||||||
<!ENTITY Iacute "Í"> <!-- latin capital letter I with acute,
|
|
||||||
U+00CD ISOlat1 -->
|
|
||||||
<!ENTITY Icirc "Î"> <!-- latin capital letter I with circumflex,
|
|
||||||
U+00CE ISOlat1 -->
|
|
||||||
<!ENTITY Iuml "Ï"> <!-- latin capital letter I with diaeresis,
|
|
||||||
U+00CF ISOlat1 -->
|
|
||||||
<!ENTITY ETH "Ð"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
|
|
||||||
<!ENTITY Ntilde "Ñ"> <!-- latin capital letter N with tilde,
|
|
||||||
U+00D1 ISOlat1 -->
|
|
||||||
<!ENTITY Ograve "Ò"> <!-- latin capital letter O with grave,
|
|
||||||
U+00D2 ISOlat1 -->
|
|
||||||
<!ENTITY Oacute "Ó"> <!-- latin capital letter O with acute,
|
|
||||||
U+00D3 ISOlat1 -->
|
|
||||||
<!ENTITY Ocirc "Ô"> <!-- latin capital letter O with circumflex,
|
|
||||||
U+00D4 ISOlat1 -->
|
|
||||||
<!ENTITY Otilde "Õ"> <!-- latin capital letter O with tilde,
|
|
||||||
U+00D5 ISOlat1 -->
|
|
||||||
<!ENTITY Ouml "Ö"> <!-- latin capital letter O with diaeresis,
|
|
||||||
U+00D6 ISOlat1 -->
|
|
||||||
<!ENTITY times "×"> <!-- multiplication sign, U+00D7 ISOnum -->
|
|
||||||
<!ENTITY Oslash "Ø"> <!-- latin capital letter O with stroke
|
|
||||||
= latin capital letter O slash,
|
|
||||||
U+00D8 ISOlat1 -->
|
|
||||||
<!ENTITY Ugrave "Ù"> <!-- latin capital letter U with grave,
|
|
||||||
U+00D9 ISOlat1 -->
|
|
||||||
<!ENTITY Uacute "Ú"> <!-- latin capital letter U with acute,
|
|
||||||
U+00DA ISOlat1 -->
|
|
||||||
<!ENTITY Ucirc "Û"> <!-- latin capital letter U with circumflex,
|
|
||||||
U+00DB ISOlat1 -->
|
|
||||||
<!ENTITY Uuml "Ü"> <!-- latin capital letter U with diaeresis,
|
|
||||||
U+00DC ISOlat1 -->
|
|
||||||
<!ENTITY Yacute "Ý"> <!-- latin capital letter Y with acute,
|
|
||||||
U+00DD ISOlat1 -->
|
|
||||||
<!ENTITY THORN "Þ"> <!-- latin capital letter THORN,
|
|
||||||
U+00DE ISOlat1 -->
|
|
||||||
<!ENTITY szlig "ß"> <!-- latin small letter sharp s = ess-zed,
|
|
||||||
U+00DF ISOlat1 -->
|
|
||||||
<!ENTITY agrave "à"> <!-- latin small letter a with grave
|
|
||||||
= latin small letter a grave,
|
|
||||||
U+00E0 ISOlat1 -->
|
|
||||||
<!ENTITY aacute "á"> <!-- latin small letter a with acute,
|
|
||||||
U+00E1 ISOlat1 -->
|
|
||||||
<!ENTITY acirc "â"> <!-- latin small letter a with circumflex,
|
|
||||||
U+00E2 ISOlat1 -->
|
|
||||||
<!ENTITY atilde "ã"> <!-- latin small letter a with tilde,
|
|
||||||
U+00E3 ISOlat1 -->
|
|
||||||
<!ENTITY auml "ä"> <!-- latin small letter a with diaeresis,
|
|
||||||
U+00E4 ISOlat1 -->
|
|
||||||
<!ENTITY aring "å"> <!-- latin small letter a with ring above
|
|
||||||
= latin small letter a ring,
|
|
||||||
U+00E5 ISOlat1 -->
|
|
||||||
<!ENTITY aelig "æ"> <!-- latin small letter ae
|
|
||||||
= latin small ligature ae, U+00E6 ISOlat1 -->
|
|
||||||
<!ENTITY ccedil "ç"> <!-- latin small letter c with cedilla,
|
|
||||||
U+00E7 ISOlat1 -->
|
|
||||||
<!ENTITY egrave "è"> <!-- latin small letter e with grave,
|
|
||||||
U+00E8 ISOlat1 -->
|
|
||||||
<!ENTITY eacute "é"> <!-- latin small letter e with acute,
|
|
||||||
U+00E9 ISOlat1 -->
|
|
||||||
<!ENTITY ecirc "ê"> <!-- latin small letter e with circumflex,
|
|
||||||
U+00EA ISOlat1 -->
|
|
||||||
<!ENTITY euml "ë"> <!-- latin small letter e with diaeresis,
|
|
||||||
U+00EB ISOlat1 -->
|
|
||||||
<!ENTITY igrave "ì"> <!-- latin small letter i with grave,
|
|
||||||
U+00EC ISOlat1 -->
|
|
||||||
<!ENTITY iacute "í"> <!-- latin small letter i with acute,
|
|
||||||
U+00ED ISOlat1 -->
|
|
||||||
<!ENTITY icirc "î"> <!-- latin small letter i with circumflex,
|
|
||||||
U+00EE ISOlat1 -->
|
|
||||||
<!ENTITY iuml "ï"> <!-- latin small letter i with diaeresis,
|
|
||||||
U+00EF ISOlat1 -->
|
|
||||||
<!ENTITY eth "ð"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
|
|
||||||
<!ENTITY ntilde "ñ"> <!-- latin small letter n with tilde,
|
|
||||||
U+00F1 ISOlat1 -->
|
|
||||||
<!ENTITY ograve "ò"> <!-- latin small letter o with grave,
|
|
||||||
U+00F2 ISOlat1 -->
|
|
||||||
<!ENTITY oacute "ó"> <!-- latin small letter o with acute,
|
|
||||||
U+00F3 ISOlat1 -->
|
|
||||||
<!ENTITY ocirc "ô"> <!-- latin small letter o with circumflex,
|
|
||||||
U+00F4 ISOlat1 -->
|
|
||||||
<!ENTITY otilde "õ"> <!-- latin small letter o with tilde,
|
|
||||||
U+00F5 ISOlat1 -->
|
|
||||||
<!ENTITY ouml "ö"> <!-- latin small letter o with diaeresis,
|
|
||||||
U+00F6 ISOlat1 -->
|
|
||||||
<!ENTITY divide "÷"> <!-- division sign, U+00F7 ISOnum -->
|
|
||||||
<!ENTITY oslash "ø"> <!-- latin small letter o with stroke,
|
|
||||||
= latin small letter o slash,
|
|
||||||
U+00F8 ISOlat1 -->
|
|
||||||
<!ENTITY ugrave "ù"> <!-- latin small letter u with grave,
|
|
||||||
U+00F9 ISOlat1 -->
|
|
||||||
<!ENTITY uacute "ú"> <!-- latin small letter u with acute,
|
|
||||||
U+00FA ISOlat1 -->
|
|
||||||
<!ENTITY ucirc "û"> <!-- latin small letter u with circumflex,
|
|
||||||
U+00FB ISOlat1 -->
|
|
||||||
<!ENTITY uuml "ü"> <!-- latin small letter u with diaeresis,
|
|
||||||
U+00FC ISOlat1 -->
|
|
||||||
<!ENTITY yacute "ý"> <!-- latin small letter y with acute,
|
|
||||||
U+00FD ISOlat1 -->
|
|
||||||
<!ENTITY thorn "þ"> <!-- latin small letter thorn,
|
|
||||||
U+00FE ISOlat1 -->
|
|
||||||
<!ENTITY yuml "ÿ"> <!-- latin small letter y with diaeresis,
|
|
||||||
U+00FF ISOlat1 -->
|
|
|
@ -1,82 +0,0 @@
|
||||||
<!-- Special characters for XHTML -->
|
|
||||||
|
|
||||||
<!-- Character entity set. Typical invocation:
|
|
||||||
<!ENTITY % HTMLspecial PUBLIC
|
|
||||||
"-//W3C//ENTITIES Special for XHTML//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
|
|
||||||
%HTMLspecial;
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Portions (C) International Organization for Standardization 1986:
|
|
||||||
Permission to copy in any form is granted for use with
|
|
||||||
conforming SGML systems and applications as defined in
|
|
||||||
ISO 8879, provided this notice is included in all copies.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Relevant ISO entity set is given unless names are newly introduced.
|
|
||||||
New names (i.e., not in ISO 8879 list) do not clash with any
|
|
||||||
existing ISO 8879 entity names. ISO 10646 character numbers
|
|
||||||
are given for each character, in hex. values are decimal
|
|
||||||
conversions of the ISO 10646 values and refer to the document
|
|
||||||
character set. Names are Unicode names.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- C0 Controls and Basic Latin -->
|
|
||||||
|
|
||||||
<!-- CB 10/03/2003 Commented out as these are already defined in XML -->
|
|
||||||
<!-- ENTITY quot """> quotation mark, U+0022 ISOnum -->
|
|
||||||
<!-- ENTITY amp "&#38;"> ampersand, U+0026 ISOnum -->
|
|
||||||
<!-- ENTITY lt "&#60;"> less-than sign, U+003C ISOnum -->
|
|
||||||
<!-- ENTITY gt ">"> greater-than sign, U+003E ISOnum -->
|
|
||||||
<!-- ENTITY apos "'"> apostrophe = APL quote, U+0027 ISOnum -->
|
|
||||||
|
|
||||||
<!-- Latin Extended-A -->
|
|
||||||
<!ENTITY OElig "Œ"> <!-- latin capital ligature OE,
|
|
||||||
U+0152 ISOlat2 -->
|
|
||||||
<!ENTITY oelig "œ"> <!-- latin small ligature oe, U+0153 ISOlat2 -->
|
|
||||||
<!-- ligature is a misnomer, this is a separate character in some languages -->
|
|
||||||
<!ENTITY Scaron "Š"> <!-- latin capital letter S with caron,
|
|
||||||
U+0160 ISOlat2 -->
|
|
||||||
<!ENTITY scaron "š"> <!-- latin small letter s with caron,
|
|
||||||
U+0161 ISOlat2 -->
|
|
||||||
<!ENTITY Yuml "Ÿ"> <!-- latin capital letter Y with diaeresis,
|
|
||||||
U+0178 ISOlat2 -->
|
|
||||||
|
|
||||||
<!-- Spacing Modifier Letters -->
|
|
||||||
<!ENTITY circ "ˆ"> <!-- modifier letter circumflex accent,
|
|
||||||
U+02C6 ISOpub -->
|
|
||||||
<!ENTITY tilde "˜"> <!-- small tilde, U+02DC ISOdia -->
|
|
||||||
|
|
||||||
<!-- General Punctuation -->
|
|
||||||
<!ENTITY ensp " "> <!-- en space, U+2002 ISOpub -->
|
|
||||||
<!ENTITY emsp " "> <!-- em space, U+2003 ISOpub -->
|
|
||||||
<!ENTITY thinsp " "> <!-- thin space, U+2009 ISOpub -->
|
|
||||||
<!ENTITY zwnj "‌"> <!-- zero width non-joiner,
|
|
||||||
U+200C NEW RFC 2070 -->
|
|
||||||
<!ENTITY zwj "‍"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
|
|
||||||
<!ENTITY lrm "‎"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
|
|
||||||
<!ENTITY rlm "‏"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
|
|
||||||
<!ENTITY ndash "–"> <!-- en dash, U+2013 ISOpub -->
|
|
||||||
<!ENTITY mdash "—"> <!-- em dash, U+2014 ISOpub -->
|
|
||||||
<!ENTITY lsquo "‘"> <!-- left single quotation mark,
|
|
||||||
U+2018 ISOnum -->
|
|
||||||
<!ENTITY rsquo "’"> <!-- right single quotation mark,
|
|
||||||
U+2019 ISOnum -->
|
|
||||||
<!ENTITY sbquo "‚"> <!-- single low-9 quotation mark, U+201A NEW -->
|
|
||||||
<!ENTITY ldquo "“"> <!-- left double quotation mark,
|
|
||||||
U+201C ISOnum -->
|
|
||||||
<!ENTITY rdquo "”"> <!-- right double quotation mark,
|
|
||||||
U+201D ISOnum -->
|
|
||||||
<!ENTITY bdquo "„"> <!-- double low-9 quotation mark, U+201E NEW -->
|
|
||||||
<!ENTITY dagger "†"> <!-- dagger, U+2020 ISOpub -->
|
|
||||||
<!ENTITY Dagger "‡"> <!-- double dagger, U+2021 ISOpub -->
|
|
||||||
<!ENTITY permil "‰"> <!-- per mille sign, U+2030 ISOtech -->
|
|
||||||
<!ENTITY lsaquo "‹"> <!-- single left-pointing angle quotation mark,
|
|
||||||
U+2039 ISO proposed -->
|
|
||||||
<!-- lsaquo is proposed but not yet ISO standardized -->
|
|
||||||
<!ENTITY rsaquo "›"> <!-- single right-pointing angle quotation mark,
|
|
||||||
U+203A ISO proposed -->
|
|
||||||
<!-- rsaquo is proposed but not yet ISO standardized -->
|
|
||||||
|
|
||||||
<!-- Currency Symbols -->
|
|
||||||
<!ENTITY euro "€"> <!-- euro sign, U+20AC NEW -->
|
|
|
@ -1,237 +0,0 @@
|
||||||
<!-- Mathematical, Greek and Symbolic characters for XHTML -->
|
|
||||||
|
|
||||||
<!-- Character entity set. Typical invocation:
|
|
||||||
<!ENTITY % HTMLsymbol PUBLIC
|
|
||||||
"-//W3C//ENTITIES Symbols for XHTML//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
|
|
||||||
%HTMLsymbol;
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Portions (C) International Organization for Standardization 1986:
|
|
||||||
Permission to copy in any form is granted for use with
|
|
||||||
conforming SGML systems and applications as defined in
|
|
||||||
ISO 8879, provided this notice is included in all copies.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Relevant ISO entity set is given unless names are newly introduced.
|
|
||||||
New names (i.e., not in ISO 8879 list) do not clash with any
|
|
||||||
existing ISO 8879 entity names. ISO 10646 character numbers
|
|
||||||
are given for each character, in hex. values are decimal
|
|
||||||
conversions of the ISO 10646 values and refer to the document
|
|
||||||
character set. Names are Unicode names.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Latin Extended-B -->
|
|
||||||
<!ENTITY fnof "ƒ"> <!-- latin small letter f with hook = function
|
|
||||||
= florin, U+0192 ISOtech -->
|
|
||||||
|
|
||||||
<!-- Greek -->
|
|
||||||
<!ENTITY Alpha "Α"> <!-- greek capital letter alpha, U+0391 -->
|
|
||||||
<!ENTITY Beta "Β"> <!-- greek capital letter beta, U+0392 -->
|
|
||||||
<!ENTITY Gamma "Γ"> <!-- greek capital letter gamma,
|
|
||||||
U+0393 ISOgrk3 -->
|
|
||||||
<!ENTITY Delta "Δ"> <!-- greek capital letter delta,
|
|
||||||
U+0394 ISOgrk3 -->
|
|
||||||
<!ENTITY Epsilon "Ε"> <!-- greek capital letter epsilon, U+0395 -->
|
|
||||||
<!ENTITY Zeta "Ζ"> <!-- greek capital letter zeta, U+0396 -->
|
|
||||||
<!ENTITY Eta "Η"> <!-- greek capital letter eta, U+0397 -->
|
|
||||||
<!ENTITY Theta "Θ"> <!-- greek capital letter theta,
|
|
||||||
U+0398 ISOgrk3 -->
|
|
||||||
<!ENTITY Iota "Ι"> <!-- greek capital letter iota, U+0399 -->
|
|
||||||
<!ENTITY Kappa "Κ"> <!-- greek capital letter kappa, U+039A -->
|
|
||||||
<!ENTITY Lambda "Λ"> <!-- greek capital letter lamda,
|
|
||||||
U+039B ISOgrk3 -->
|
|
||||||
<!ENTITY Mu "Μ"> <!-- greek capital letter mu, U+039C -->
|
|
||||||
<!ENTITY Nu "Ν"> <!-- greek capital letter nu, U+039D -->
|
|
||||||
<!ENTITY Xi "Ξ"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
|
|
||||||
<!ENTITY Omicron "Ο"> <!-- greek capital letter omicron, U+039F -->
|
|
||||||
<!ENTITY Pi "Π"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
|
|
||||||
<!ENTITY Rho "Ρ"> <!-- greek capital letter rho, U+03A1 -->
|
|
||||||
<!-- there is no Sigmaf, and no U+03A2 character either -->
|
|
||||||
<!ENTITY Sigma "Σ"> <!-- greek capital letter sigma,
|
|
||||||
U+03A3 ISOgrk3 -->
|
|
||||||
<!ENTITY Tau "Τ"> <!-- greek capital letter tau, U+03A4 -->
|
|
||||||
<!ENTITY Upsilon "Υ"> <!-- greek capital letter upsilon,
|
|
||||||
U+03A5 ISOgrk3 -->
|
|
||||||
<!ENTITY Phi "Φ"> <!-- greek capital letter phi,
|
|
||||||
U+03A6 ISOgrk3 -->
|
|
||||||
<!ENTITY Chi "Χ"> <!-- greek capital letter chi, U+03A7 -->
|
|
||||||
<!ENTITY Psi "Ψ"> <!-- greek capital letter psi,
|
|
||||||
U+03A8 ISOgrk3 -->
|
|
||||||
<!ENTITY Omega "Ω"> <!-- greek capital letter omega,
|
|
||||||
U+03A9 ISOgrk3 -->
|
|
||||||
|
|
||||||
<!ENTITY alpha "α"> <!-- greek small letter alpha,
|
|
||||||
U+03B1 ISOgrk3 -->
|
|
||||||
<!ENTITY beta "β"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
|
|
||||||
<!ENTITY gamma "γ"> <!-- greek small letter gamma,
|
|
||||||
U+03B3 ISOgrk3 -->
|
|
||||||
<!ENTITY delta "δ"> <!-- greek small letter delta,
|
|
||||||
U+03B4 ISOgrk3 -->
|
|
||||||
<!ENTITY epsilon "ε"> <!-- greek small letter epsilon,
|
|
||||||
U+03B5 ISOgrk3 -->
|
|
||||||
<!ENTITY zeta "ζ"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
|
|
||||||
<!ENTITY eta "η"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
|
|
||||||
<!ENTITY theta "θ"> <!-- greek small letter theta,
|
|
||||||
U+03B8 ISOgrk3 -->
|
|
||||||
<!ENTITY iota "ι"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
|
|
||||||
<!ENTITY kappa "κ"> <!-- greek small letter kappa,
|
|
||||||
U+03BA ISOgrk3 -->
|
|
||||||
<!ENTITY lambda "λ"> <!-- greek small letter lamda,
|
|
||||||
U+03BB ISOgrk3 -->
|
|
||||||
<!ENTITY mu "μ"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
|
|
||||||
<!ENTITY nu "ν"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
|
|
||||||
<!ENTITY xi "ξ"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
|
|
||||||
<!ENTITY omicron "ο"> <!-- greek small letter omicron, U+03BF NEW -->
|
|
||||||
<!ENTITY pi "π"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
|
|
||||||
<!ENTITY rho "ρ"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
|
|
||||||
<!ENTITY sigmaf "ς"> <!-- greek small letter final sigma,
|
|
||||||
U+03C2 ISOgrk3 -->
|
|
||||||
<!ENTITY sigma "σ"> <!-- greek small letter sigma,
|
|
||||||
U+03C3 ISOgrk3 -->
|
|
||||||
<!ENTITY tau "τ"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
|
|
||||||
<!ENTITY upsilon "υ"> <!-- greek small letter upsilon,
|
|
||||||
U+03C5 ISOgrk3 -->
|
|
||||||
<!ENTITY phi "φ"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
|
|
||||||
<!ENTITY chi "χ"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
|
|
||||||
<!ENTITY psi "ψ"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
|
|
||||||
<!ENTITY omega "ω"> <!-- greek small letter omega,
|
|
||||||
U+03C9 ISOgrk3 -->
|
|
||||||
<!ENTITY thetasym "ϑ"> <!-- greek theta symbol,
|
|
||||||
U+03D1 NEW -->
|
|
||||||
<!ENTITY upsih "ϒ"> <!-- greek upsilon with hook symbol,
|
|
||||||
U+03D2 NEW -->
|
|
||||||
<!ENTITY piv "ϖ"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
|
|
||||||
|
|
||||||
<!-- General Punctuation -->
|
|
||||||
<!ENTITY bull "•"> <!-- bullet = black small circle,
|
|
||||||
U+2022 ISOpub -->
|
|
||||||
<!-- bullet is NOT the same as bullet operator, U+2219 -->
|
|
||||||
<!ENTITY hellip "…"> <!-- horizontal ellipsis = three dot leader,
|
|
||||||
U+2026 ISOpub -->
|
|
||||||
<!ENTITY prime "′"> <!-- prime = minutes = feet, U+2032 ISOtech -->
|
|
||||||
<!ENTITY Prime "″"> <!-- double prime = seconds = inches,
|
|
||||||
U+2033 ISOtech -->
|
|
||||||
<!ENTITY oline "‾"> <!-- overline = spacing overscore,
|
|
||||||
U+203E NEW -->
|
|
||||||
<!ENTITY frasl "⁄"> <!-- fraction slash, U+2044 NEW -->
|
|
||||||
|
|
||||||
<!-- Letterlike Symbols -->
|
|
||||||
<!ENTITY weierp "℘"> <!-- script capital P = power set
|
|
||||||
= Weierstrass p, U+2118 ISOamso -->
|
|
||||||
<!ENTITY image "ℑ"> <!-- black-letter capital I = imaginary part,
|
|
||||||
U+2111 ISOamso -->
|
|
||||||
<!ENTITY real "ℜ"> <!-- black-letter capital R = real part symbol,
|
|
||||||
U+211C ISOamso -->
|
|
||||||
<!ENTITY trade "™"> <!-- trade mark sign, U+2122 ISOnum -->
|
|
||||||
<!ENTITY alefsym "ℵ"> <!-- alef symbol = first transfinite cardinal,
|
|
||||||
U+2135 NEW -->
|
|
||||||
<!-- alef symbol is NOT the same as hebrew letter alef,
|
|
||||||
U+05D0 although the same glyph could be used to depict both characters -->
|
|
||||||
|
|
||||||
<!-- Arrows -->
|
|
||||||
<!ENTITY larr "←"> <!-- leftwards arrow, U+2190 ISOnum -->
|
|
||||||
<!ENTITY uarr "↑"> <!-- upwards arrow, U+2191 ISOnum-->
|
|
||||||
<!ENTITY rarr "→"> <!-- rightwards arrow, U+2192 ISOnum -->
|
|
||||||
<!ENTITY darr "↓"> <!-- downwards arrow, U+2193 ISOnum -->
|
|
||||||
<!ENTITY harr "↔"> <!-- left right arrow, U+2194 ISOamsa -->
|
|
||||||
<!ENTITY crarr "↵"> <!-- downwards arrow with corner leftwards
|
|
||||||
= carriage return, U+21B5 NEW -->
|
|
||||||
<!ENTITY lArr "⇐"> <!-- leftwards double arrow, U+21D0 ISOtech -->
|
|
||||||
<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow
|
|
||||||
but also does not have any other character for that function. So lArr can
|
|
||||||
be used for 'is implied by' as ISOtech suggests -->
|
|
||||||
<!ENTITY uArr "⇑"> <!-- upwards double arrow, U+21D1 ISOamsa -->
|
|
||||||
<!ENTITY rArr "⇒"> <!-- rightwards double arrow,
|
|
||||||
U+21D2 ISOtech -->
|
|
||||||
<!-- Unicode does not say this is the 'implies' character but does not have
|
|
||||||
another character with this function so rArr can be used for 'implies'
|
|
||||||
as ISOtech suggests -->
|
|
||||||
<!ENTITY dArr "⇓"> <!-- downwards double arrow, U+21D3 ISOamsa -->
|
|
||||||
<!ENTITY hArr "⇔"> <!-- left right double arrow,
|
|
||||||
U+21D4 ISOamsa -->
|
|
||||||
|
|
||||||
<!-- Mathematical Operators -->
|
|
||||||
<!ENTITY forall "∀"> <!-- for all, U+2200 ISOtech -->
|
|
||||||
<!ENTITY part "∂"> <!-- partial differential, U+2202 ISOtech -->
|
|
||||||
<!ENTITY exist "∃"> <!-- there exists, U+2203 ISOtech -->
|
|
||||||
<!ENTITY empty "∅"> <!-- empty set = null set, U+2205 ISOamso -->
|
|
||||||
<!ENTITY nabla "∇"> <!-- nabla = backward difference,
|
|
||||||
U+2207 ISOtech -->
|
|
||||||
<!ENTITY isin "∈"> <!-- element of, U+2208 ISOtech -->
|
|
||||||
<!ENTITY notin "∉"> <!-- not an element of, U+2209 ISOtech -->
|
|
||||||
<!ENTITY ni "∋"> <!-- contains as member, U+220B ISOtech -->
|
|
||||||
<!ENTITY prod "∏"> <!-- n-ary product = product sign,
|
|
||||||
U+220F ISOamsb -->
|
|
||||||
<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
|
|
||||||
the same glyph might be used for both -->
|
|
||||||
<!ENTITY sum "∑"> <!-- n-ary summation, U+2211 ISOamsb -->
|
|
||||||
<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
|
|
||||||
though the same glyph might be used for both -->
|
|
||||||
<!ENTITY minus "−"> <!-- minus sign, U+2212 ISOtech -->
|
|
||||||
<!ENTITY lowast "∗"> <!-- asterisk operator, U+2217 ISOtech -->
|
|
||||||
<!ENTITY radic "√"> <!-- square root = radical sign,
|
|
||||||
U+221A ISOtech -->
|
|
||||||
<!ENTITY prop "∝"> <!-- proportional to, U+221D ISOtech -->
|
|
||||||
<!ENTITY infin "∞"> <!-- infinity, U+221E ISOtech -->
|
|
||||||
<!ENTITY ang "∠"> <!-- angle, U+2220 ISOamso -->
|
|
||||||
<!ENTITY and "∧"> <!-- logical and = wedge, U+2227 ISOtech -->
|
|
||||||
<!ENTITY or "∨"> <!-- logical or = vee, U+2228 ISOtech -->
|
|
||||||
<!ENTITY cap "∩"> <!-- intersection = cap, U+2229 ISOtech -->
|
|
||||||
<!ENTITY cup "∪"> <!-- union = cup, U+222A ISOtech -->
|
|
||||||
<!ENTITY int "∫"> <!-- integral, U+222B ISOtech -->
|
|
||||||
<!ENTITY there4 "∴"> <!-- therefore, U+2234 ISOtech -->
|
|
||||||
<!ENTITY sim "∼"> <!-- tilde operator = varies with = similar to,
|
|
||||||
U+223C ISOtech -->
|
|
||||||
<!-- tilde operator is NOT the same character as the tilde, U+007E,
|
|
||||||
although the same glyph might be used to represent both -->
|
|
||||||
<!ENTITY cong "≅"> <!-- approximately equal to, U+2245 ISOtech -->
|
|
||||||
<!ENTITY asymp "≈"> <!-- almost equal to = asymptotic to,
|
|
||||||
U+2248 ISOamsr -->
|
|
||||||
<!ENTITY ne "≠"> <!-- not equal to, U+2260 ISOtech -->
|
|
||||||
<!ENTITY equiv "≡"> <!-- identical to, U+2261 ISOtech -->
|
|
||||||
<!ENTITY le "≤"> <!-- less-than or equal to, U+2264 ISOtech -->
|
|
||||||
<!ENTITY ge "≥"> <!-- greater-than or equal to,
|
|
||||||
U+2265 ISOtech -->
|
|
||||||
<!ENTITY sub "⊂"> <!-- subset of, U+2282 ISOtech -->
|
|
||||||
<!ENTITY sup "⊃"> <!-- superset of, U+2283 ISOtech -->
|
|
||||||
<!ENTITY nsub "⊄"> <!-- not a subset of, U+2284 ISOamsn -->
|
|
||||||
<!ENTITY sube "⊆"> <!-- subset of or equal to, U+2286 ISOtech -->
|
|
||||||
<!ENTITY supe "⊇"> <!-- superset of or equal to,
|
|
||||||
U+2287 ISOtech -->
|
|
||||||
<!ENTITY oplus "⊕"> <!-- circled plus = direct sum,
|
|
||||||
U+2295 ISOamsb -->
|
|
||||||
<!ENTITY otimes "⊗"> <!-- circled times = vector product,
|
|
||||||
U+2297 ISOamsb -->
|
|
||||||
<!ENTITY perp "⊥"> <!-- up tack = orthogonal to = perpendicular,
|
|
||||||
U+22A5 ISOtech -->
|
|
||||||
<!ENTITY sdot "⋅"> <!-- dot operator, U+22C5 ISOamsb -->
|
|
||||||
<!-- dot operator is NOT the same character as U+00B7 middle dot -->
|
|
||||||
|
|
||||||
<!-- Miscellaneous Technical -->
|
|
||||||
<!ENTITY lceil "⌈"> <!-- left ceiling = APL upstile,
|
|
||||||
U+2308 ISOamsc -->
|
|
||||||
<!ENTITY rceil "⌉"> <!-- right ceiling, U+2309 ISOamsc -->
|
|
||||||
<!ENTITY lfloor "⌊"> <!-- left floor = APL downstile,
|
|
||||||
U+230A ISOamsc -->
|
|
||||||
<!ENTITY rfloor "⌋"> <!-- right floor, U+230B ISOamsc -->
|
|
||||||
<!ENTITY lang "〈"> <!-- left-pointing angle bracket = bra,
|
|
||||||
U+2329 ISOtech -->
|
|
||||||
<!-- lang is NOT the same character as U+003C 'less than sign'
|
|
||||||
or U+2039 'single left-pointing angle quotation mark' -->
|
|
||||||
<!ENTITY rang "〉"> <!-- right-pointing angle bracket = ket,
|
|
||||||
U+232A ISOtech -->
|
|
||||||
<!-- rang is NOT the same character as U+003E 'greater than sign'
|
|
||||||
or U+203A 'single right-pointing angle quotation mark' -->
|
|
||||||
|
|
||||||
<!-- Geometric Shapes -->
|
|
||||||
<!ENTITY loz "◊"> <!-- lozenge, U+25CA ISOpub -->
|
|
||||||
|
|
||||||
<!-- Miscellaneous Symbols -->
|
|
||||||
<!ENTITY spades "♠"> <!-- black spade suit, U+2660 ISOpub -->
|
|
||||||
<!-- black here seems to mean filled as opposed to hollow -->
|
|
||||||
<!ENTITY clubs "♣"> <!-- black club suit = shamrock,
|
|
||||||
U+2663 ISOpub -->
|
|
||||||
<!ENTITY hearts "♥"> <!-- black heart suit = valentine,
|
|
||||||
U+2665 ISOpub -->
|
|
||||||
<!ENTITY diams "♦"> <!-- black diamond suit, U+2666 ISOpub -->
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,237 +0,0 @@
|
||||||
package xid.test;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.*;
|
|
||||||
import xid.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
class Test
|
|
||||||
{
|
|
||||||
static private org.apache.log4j.Logger log;
|
|
||||||
|
|
||||||
static
|
|
||||||
{
|
|
||||||
// Initialize log.
|
|
||||||
org.apache.log4j.Logger log = null;
|
|
||||||
|
|
||||||
org.apache.log4j.BasicConfigurator.configure ();
|
|
||||||
|
|
||||||
|
|
||||||
log = org.apache.log4j.Logger.getRootLogger ();
|
|
||||||
//log.setLevel (org.apache.log4j.Level.INFO);
|
|
||||||
log.setLevel (org.apache.log4j.Level.INFO);
|
|
||||||
|
|
||||||
log.info ("Enter");
|
|
||||||
|
|
||||||
//
|
|
||||||
log.info ("Set the log file format...");
|
|
||||||
|
|
||||||
|
|
||||||
// log = org.apache.log4j.Category.getInstance(Application.class.getName());
|
|
||||||
log.info ("... done.");
|
|
||||||
|
|
||||||
log.debug ("Exit");
|
|
||||||
log = org.apache.log4j.Logger.getLogger (Test.class.getName ());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static String check (String title, StringBuffer source, String model)
|
|
||||||
{
|
|
||||||
String result;
|
|
||||||
|
|
||||||
if (source.indexOf (model) == -1)
|
|
||||||
{
|
|
||||||
result = String.format ("%-40s -> KO <-", title) + "\nGet:\n" + source + "\nWaiting:\n" + model;
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = String.format ("%-40s [ OK ] ", title);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum MONTHS {JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBRE, DECEMBRE};
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static void main(String[] args)
|
|
||||||
{
|
|
||||||
System.out.println("Automatic test action for Xid!");
|
|
||||||
|
|
||||||
|
|
||||||
Data datas;
|
|
||||||
IdData tag;
|
|
||||||
|
|
||||||
|
|
||||||
String htmlSource;
|
|
||||||
StringBuffer html;
|
|
||||||
StringBuffer errorMessage;
|
|
||||||
|
|
||||||
// Populate attributes of Test 03.
|
|
||||||
System.out.println ("----------------------------");
|
|
||||||
datas = new Data ();
|
|
||||||
datas.setContent ("name", "Superman");
|
|
||||||
errorMessage = new StringBuffer ();
|
|
||||||
|
|
||||||
html = StringPresenter.doXid ("<div id='name'>a name</div >", datas, errorMessage);
|
|
||||||
|
|
||||||
System.out.println (check ("only content change", html, "<div id=\"name\">Superman</div>"));
|
|
||||||
|
|
||||||
|
|
||||||
// Populate attributes of Test 03.
|
|
||||||
System.out.println ("----------------------------");
|
|
||||||
datas = new Data ();
|
|
||||||
datas.setContent ("lastname", "Spiderman");
|
|
||||||
datas.appendAttribute ("lastname", "style", "background: blue;");
|
|
||||||
datas.appendAttribute ("lastname", "style", "foreground: red;");
|
|
||||||
datas.setAttribute ("lastname", "class", "nameClass");
|
|
||||||
|
|
||||||
errorMessage = new StringBuffer ();
|
|
||||||
html = StringPresenter.doXid ("<div id='lastname'>a last name</div >", datas, errorMessage);
|
|
||||||
System.out.println (check ("content and attributes", html, "<div class=\"nameClass\" style=\"background: blue;foreground: red;\" id=\"lastname\">Spiderman</div>"));
|
|
||||||
|
|
||||||
// Populate attributes of Test 03.
|
|
||||||
System.out.println ("----------------------------");
|
|
||||||
datas = new Data ();
|
|
||||||
datas.setContent ("words", 0, "alpha");
|
|
||||||
datas.setContent ("words", 1, "bravo");
|
|
||||||
datas.setContent ("words", 2, "charlie");
|
|
||||||
datas.setContent ("words", 3, "delta");
|
|
||||||
datas.setContent ("words", 4, "echo");
|
|
||||||
datas.setContent ("words", 5, "fox");
|
|
||||||
|
|
||||||
|
|
||||||
errorMessage = new StringBuffer ();
|
|
||||||
html = StringPresenter.doXid ("<ul>\n <li id='words'>a word</li>\n</ul>", datas, errorMessage);
|
|
||||||
|
|
||||||
System.out.println (check ("list assertion 1", html, "<li id=\"words_0\">alpha</li>"));
|
|
||||||
System.out.println (check ("list assertion 2", html, "<li id=\"words_1\">bravo</li>"));
|
|
||||||
System.out.println (check ("list assertion 3", html, "<li id=\"words_2\">charlie</li>"));
|
|
||||||
System.out.println (check ("list assertion 4", html, "<li id=\"words_3\">delta</li>"));
|
|
||||||
System.out.println (check ("list assertion 5", html, "<li id=\"words_4\">echo</li>"));
|
|
||||||
System.out.println (check ("list assertion 6", html, "<li id=\"words_5\">fox</li>"));
|
|
||||||
|
|
||||||
// Populate attributes of Test 03.
|
|
||||||
System.out.println ("----------------------------");
|
|
||||||
datas = new Data ();
|
|
||||||
datas.setContent ("identity", 0, "nom", "Jemba");
|
|
||||||
datas.setContent ("identity", 0, "prenom", "Epo");
|
|
||||||
datas.setContent ("identity", 1, "nom", "Momon");
|
|
||||||
datas.setContent ("identity", 1, "prenom", "Christian");
|
|
||||||
datas.setContent ("identity", 2, "nom", "Tronche");
|
|
||||||
datas.setContent ("identity", 2, "prenom", "Christophe");
|
|
||||||
|
|
||||||
|
|
||||||
errorMessage = new StringBuffer ();
|
|
||||||
StringBuffer source = new StringBuffer ();
|
|
||||||
source.append ("<table>\n");
|
|
||||||
source.append (" <tr id='identity'><td>noid</td><td id='nom'>un nom</td><td id='prenom'>un prenom</td></tr>\n");
|
|
||||||
source.append ("</table>");
|
|
||||||
htmlSource = source.toString ();
|
|
||||||
html = StringPresenter.doXid (htmlSource, datas, errorMessage);
|
|
||||||
|
|
||||||
System.out.println (check ("table 1 assertion 1", html, "<tr id=\"identity_0\"><td>noid</td><td id=\"nom_0\">Jemba</td><td id=\"prenom_0\">Epo</td></tr>"));
|
|
||||||
System.out.println (check ("table 1 assertion 2", html, "<tr id=\"identity_1\"><td>noid</td><td id=\"nom_1\">Momon</td><td id=\"prenom_1\">Christian</td></tr>"));
|
|
||||||
System.out.println (check ("table 1 assertion 3", html, "<tr id=\"identity_2\"><td>noid</td><td id=\"nom_2\">Tronche</td><td id=\"prenom_2\">Christophe</td></tr>"));
|
|
||||||
|
|
||||||
/*
|
|
||||||
// Populate attributes of Test 03.
|
|
||||||
System.out.println ("----------------------------");
|
|
||||||
datas = new Data ();
|
|
||||||
datas.setContent ("identity", 0, "nom", "Jemba");
|
|
||||||
datas.setContent ("identity", 0, "prenom", "Epo");
|
|
||||||
datas.setContent ("identity", 1, "nom", "Momon");
|
|
||||||
datas.setContent ("identity", 1, "prenom", "Christian");
|
|
||||||
datas.setContent ("identity", 2, "nom", "Tronche");
|
|
||||||
datas.setContent ("identity", 2, "prenom", "Christophe");
|
|
||||||
datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_FIRST_ROW);
|
|
||||||
//datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_ROWS_WITH_ID);
|
|
||||||
//datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_ROWS_WITHOUT_ID);
|
|
||||||
//datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ALL_ROWS);
|
|
||||||
|
|
||||||
|
|
||||||
errorMessage = new StringBuffer ();
|
|
||||||
source = new StringBuffer ();
|
|
||||||
source.append ("<table>\n");
|
|
||||||
source.append (" <tr id='identity'><td>noid</td><td id='nom'>un nom</td><td id='prenom'>un prenom</td></tr>\n");
|
|
||||||
source.append (" <tr id='identity2'><td>noid</td><td id='nom2'>un nom</td><td id='prenom2'>un prenom</td></tr>\n");
|
|
||||||
source.append (" <tr><td>noid</td><td id='nom3'>un nom</td><td id='prenom3'>un prenom</td></tr>\n");
|
|
||||||
source.append ("</table>");
|
|
||||||
htmlSource = source.toString ();
|
|
||||||
|
|
||||||
System.out.println ("datas = new Data ();");
|
|
||||||
System.out.println ("datas.setContent (\"identity\", 0, \"nom\", \"Jemba\");");
|
|
||||||
System.out.println ("datas.setContent (\"identity\", 0, \"prenom\", \"Epo\");");
|
|
||||||
System.out.println ("datas.setContent (\"identity\", 1, \"nom\", \"Momon\");");
|
|
||||||
System.out.println ("datas.setContent (\"identity\", 1, \"prenom\", \"Christian\");");
|
|
||||||
System.out.println ("datas.setContent (\"identity\", 2, \"nom\", \"Tronche\");");
|
|
||||||
System.out.println ("datas.setContent (\"identity\", 2, \"prenom\", \"Christophe\");");
|
|
||||||
|
|
||||||
System.out.println ("+");
|
|
||||||
System.out.println (htmlSource);
|
|
||||||
System.out.println ("=>");
|
|
||||||
|
|
||||||
|
|
||||||
datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_FIRST_ROW);
|
|
||||||
System.out.println ("ONLY_FIRST_ROW:");
|
|
||||||
html = Presenter.doXid (htmlSource, datas, "", errorMessage);
|
|
||||||
System.out.println (html);
|
|
||||||
|
|
||||||
datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_ROWS_WITH_ID);
|
|
||||||
System.out.println ("ONLY_ROWS_WITH_ID:");
|
|
||||||
html = Presenter.doXid (htmlSource, datas, "", errorMessage);
|
|
||||||
System.out.println (html);
|
|
||||||
|
|
||||||
datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_ROWS_WITHOUT_ID);
|
|
||||||
System.out.println ("ONLY_ROWS_WITHOUT_ID:");
|
|
||||||
html = Presenter.doXid (htmlSource, datas, "", errorMessage);
|
|
||||||
System.out.println (html);
|
|
||||||
|
|
||||||
datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ALL_ROWS);
|
|
||||||
System.out.println ("ALL_ROWS:");
|
|
||||||
html = Presenter.doXid (htmlSource, datas, "", errorMessage);
|
|
||||||
System.out.println (html);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Populate attributes of Test 03.
|
|
||||||
System.out.println ("----------------------------");
|
|
||||||
datas = new Data ();
|
|
||||||
datas.setAttribute ("<div>", "class", "aDivClass");
|
|
||||||
datas.setAttribute ("<div>", "style", "background-color: #000000;");
|
|
||||||
datas.setAttribute ("number", "style", "background-color: #0000FF;");
|
|
||||||
|
|
||||||
errorMessage = new StringBuffer ();
|
|
||||||
source = new StringBuffer ();
|
|
||||||
source.append ("<div>\n");
|
|
||||||
source.append (" <h1>one</h1>\n");
|
|
||||||
source.append ("</div>\n");
|
|
||||||
source.append ("<div id=\"number\">\n");
|
|
||||||
source.append (" <h1>three</h1>\n");
|
|
||||||
source.append ("</div>");
|
|
||||||
htmlSource = source.toString ();
|
|
||||||
html = Presenter.doXid (htmlSource, datas, "", errorMessage);
|
|
||||||
|
|
||||||
System.out.println (htmlSource);
|
|
||||||
System.out.println ("+");
|
|
||||||
System.out.println ("datas = new Data ();");
|
|
||||||
System.out.println ("datas.setAttribute (\"<div>\", \"class\", \"aDivClass\");");
|
|
||||||
System.out.println ("datas.setAttribute (\"<div>\", \"style\", \"background-color: #000000;\");");
|
|
||||||
System.out.println ("datas.setAttribute (\"number\", \"style\", \"background-color: #0000FF;\");");
|
|
||||||
|
|
||||||
System.out.println ("=>");
|
|
||||||
System.out.println (html);
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE project>
|
|
||||||
<!-- Builds the XID Test files. -->
|
|
||||||
<project name="xid" default="dist" basedir=".">
|
|
||||||
<property name="targetjar" value="xid.jar"/>
|
|
||||||
<property name="zip_file" value="xid.zip"/> <!-- Release zip file -->
|
|
||||||
<property name="src" value="src"/>
|
|
||||||
<property name="build" value="build"/>
|
|
||||||
<property name="doc" value="doc"/>
|
|
||||||
<property name="dist" value="dist"/>
|
|
||||||
<property name="resources" value="resources"/>
|
|
||||||
<property name="debug" value="on"/>
|
|
||||||
|
|
||||||
<target name="dist" depends="compile" />
|
|
||||||
|
|
||||||
<!-- ******* Init ******* -->
|
|
||||||
<target name="init">
|
|
||||||
<tstamp/>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<!-- ******* Compile ******* -->
|
|
||||||
<target name="compile" depends="init">
|
|
||||||
<javac srcdir="xid" destdir="." debug="${debug}" deprecation="on">
|
|
||||||
<classpath>
|
|
||||||
<fileset dir="../lib" includes="**/*.jar"/>
|
|
||||||
</classpath>
|
|
||||||
</javac>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
</project>
|
|
|
@ -1,9 +0,0 @@
|
||||||
# Log information (priority setting : DEBUG < INFO < WARN < ERROR)
|
|
||||||
# ################
|
|
||||||
log4j.rootCategory = INFO, Writer
|
|
||||||
log4j.appender.Writer = org.apache.log4j.RollingFileAppender
|
|
||||||
log4j.appender.Writer.File = /var/log/tomcat5/xid-test.log
|
|
||||||
log4j.appender.Writer.MaxFileSize = 100000KB
|
|
||||||
log4j.appender.Writer.MaxBackupIndex = 10
|
|
||||||
log4j.appender.Writer.layout = org.apache.log4j.PatternLayout
|
|
||||||
log4j.appender.Writer.layout.ConversionPattern = %d{ISO8601} - %-17t %-6p %-34c.%20M - %m%n
|
|
|
@ -1,69 +0,0 @@
|
||||||
<!DOCTYPE html SYSTEM "xhtml1-transitional.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>test</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
Test 01: No id attribute
|
|
||||||
XHTML: Hello <b title="a">world</b>.
|
|
||||||
no Java code
|
|
||||||
Result: Hello <b title="a">world</b>.
|
|
||||||
|
|
||||||
Test 02: id attribute with empty model
|
|
||||||
XHTML: Hello <b id="test02-original" title="b">world</b>.
|
|
||||||
no Java code
|
|
||||||
Result: Hello <b id="test02" title="b">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 03: model changing the text
|
|
||||||
XHTML: Hello <b id="test03-original" title="c">world</b>.
|
|
||||||
// Populate attributes of Test 03.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().appendAttribute ("style", "background: blue;");
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "totoClass");
|
|
||||||
text.setText ("mummy");
|
|
||||||
datas.put ("test03", text);
|
|
||||||
Result: Hello <b id="test03" title="c">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 04: model changing title
|
|
||||||
XHTML: Hello <b id="test04-original" title="d">world</b>.
|
|
||||||
// Populate attributes of Test 04.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().setAttribute ("title", "another title");
|
|
||||||
datas.put ("test04", text);
|
|
||||||
Result: Hello <b id="test04" title="d">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 05: model adding style attributes
|
|
||||||
XHTML: Hello <b id="test05-original" title="d">world</b>.
|
|
||||||
// Populate attributes of Test 05.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().appendAttribute ("style", "background: blue;");
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "aClass");
|
|
||||||
datas.put ("test05", text);
|
|
||||||
Result: Hello <b id="test05" title="d">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 06: model appending style attributes
|
|
||||||
XHTML: Hello <b id="test06-original" title="d" style="background:yellow;">world</b>.
|
|
||||||
// Populate attributes of Test 06.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "aClass");
|
|
||||||
datas.put ("test06", text);
|
|
||||||
Result: Hello <b id="test06" title="d" style="background:yellow;">world</b>.
|
|
||||||
|
|
||||||
|
|
||||||
Test 07: image
|
|
||||||
XHTML: A picture <img id="test07-original" src="http://www.ocmland.org/tmp/floatingb.jpg" alt="pinguoin flottant" />.
|
|
||||||
// Populate attributes of Test 07.
|
|
||||||
text = new TextModel ();
|
|
||||||
text.getAttributes ().setAttribute ("width", "50%");
|
|
||||||
datas.put ("test07", text);
|
|
||||||
Result: A picture <img id="test07" src="http://www.ocmland.org/tmp/floatingb.jpg" alt="pinguoin flottant" />.
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Binary file not shown.
|
@ -1,136 +0,0 @@
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
package xid;
|
|
||||||
import java.io.*;
|
|
||||||
import java.text.*;
|
|
||||||
import java.util.*;
|
|
||||||
import javax.servlet.*;
|
|
||||||
import javax.servlet.http.*;
|
|
||||||
import xid.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class Test extends HttpServlet
|
|
||||||
{
|
|
||||||
static private org.apache.log4j.Logger log;
|
|
||||||
|
|
||||||
static
|
|
||||||
{
|
|
||||||
log = org.apache.log4j.Logger.getLogger (Test.class.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void doPost (HttpServletRequest req,
|
|
||||||
HttpServletResponse res)
|
|
||||||
throws ServletException, IOException
|
|
||||||
{
|
|
||||||
doGet (req, res);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void doGet (HttpServletRequest request,
|
|
||||||
HttpServletResponse response)
|
|
||||||
throws IOException, ServletException
|
|
||||||
{
|
|
||||||
log.info ("Enter");
|
|
||||||
|
|
||||||
Presenter xid = new Presenter (getServletContext ().getRealPath ("/"), "testXid.html");
|
|
||||||
|
|
||||||
//
|
|
||||||
TagsData datas = new TagsData ();
|
|
||||||
TextTagData text;
|
|
||||||
|
|
||||||
// Populate attributes of Test 03.
|
|
||||||
text = new TextTagData ();
|
|
||||||
datas.put ("test03", text);
|
|
||||||
text.setText ("mummy");
|
|
||||||
text.getAttributes ().appendAttribute ("style", "background: blue;");
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "totoClass");
|
|
||||||
|
|
||||||
|
|
||||||
// Populate attributes of Test 04.
|
|
||||||
text = new TextTagData ();
|
|
||||||
text.getAttributes ().setAttribute ("title", "another title");
|
|
||||||
datas.put ("test04", text);
|
|
||||||
|
|
||||||
|
|
||||||
// Populate attributes of Test 05.
|
|
||||||
text = new TextTagData ();
|
|
||||||
datas.put ("test05", text);
|
|
||||||
text.getAttributes ().appendAttribute ("style", "background: blue;");
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "aClass");
|
|
||||||
|
|
||||||
|
|
||||||
// Populate attributes of Test 06.
|
|
||||||
text = new TextTagData ();
|
|
||||||
text.getAttributes ().appendAttribute ("style", "foreground: red;");
|
|
||||||
text.getAttributes ().setAttribute ("class", "aClass");
|
|
||||||
datas.put ("test06", text);
|
|
||||||
|
|
||||||
|
|
||||||
// Populate attributes of Test 07.
|
|
||||||
text = new TextTagData ();
|
|
||||||
text.getAttributes ().setAttribute ("width", "50%");
|
|
||||||
datas.put ("test07", text);
|
|
||||||
|
|
||||||
|
|
||||||
// Populate attributes of Test 09.
|
|
||||||
text = new TextTagData ();
|
|
||||||
text.getAttributes ().setAttribute ("class", "xid:nodisplay");
|
|
||||||
datas.put ("test09", text);
|
|
||||||
|
|
||||||
|
|
||||||
StringBuffer html;
|
|
||||||
StringBuffer errorMessage;
|
|
||||||
|
|
||||||
errorMessage = new StringBuffer ();
|
|
||||||
html = xid.doXid (datas, errorMessage);
|
|
||||||
|
|
||||||
|
|
||||||
// Display page.
|
|
||||||
response.setContentType ("text/html");
|
|
||||||
PrintWriter out = response.getWriter();
|
|
||||||
|
|
||||||
out.println ("<html>");
|
|
||||||
out.println ("<head>");
|
|
||||||
out.println ("<title>XID TEST</title>");
|
|
||||||
out.println ("</head>");
|
|
||||||
out.println ("<body bgcolor=\"orange\">");
|
|
||||||
|
|
||||||
out.println ("<hr />");
|
|
||||||
out.println ("XID TEST<br/>");
|
|
||||||
|
|
||||||
if (errorMessage.length () != 0)
|
|
||||||
{
|
|
||||||
out.println ("An error occured in Xid treatment.<br/>");
|
|
||||||
out.println ("<pre>");
|
|
||||||
out.println (errorMessage);
|
|
||||||
out.println ("</pre>");
|
|
||||||
out.println ("<hr />");
|
|
||||||
out.println ("<pre>" + Presenter.restoreEntities (html) + "</pre>");
|
|
||||||
out.println ("<hr />");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
out.println ("<pre>" + Presenter.restoreEntities (html) + "</pre>");
|
|
||||||
}
|
|
||||||
|
|
||||||
out.println ("</body>");
|
|
||||||
out.println ("</html>");
|
|
||||||
|
|
||||||
log.info ("Exit");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ////////////////////////////////////////////////////////////////////////
|
|
Binary file not shown.
|
@ -1,20 +1,11 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
|
||||||
<!DOCTYPE web-app
|
|
||||||
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
|
|
||||||
"http://java.sun.com/dtd/web-app_2_3.dtd">
|
|
||||||
|
|
||||||
<web-app>
|
|
||||||
|
|
||||||
<display-name>XID TESTS</display-name>
|
<display-name>XID TESTS</display-name>
|
||||||
<description>
|
<description>
|
||||||
Some tests on XID.
|
Some tests on XID.
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
<Context privileged="true" reloadable="true">
|
|
||||||
<Loader reloadable="true" className="org.apache.catalina.loader.WebappLoader" checkInterval ="2"/>
|
|
||||||
</Context>
|
|
||||||
|
|
||||||
<!-- ========================================== -->
|
<!-- ========================================== -->
|
||||||
<servlet>
|
<servlet>
|
||||||
<servlet-name>XidTest</servlet-name>
|
<servlet-name>XidTest</servlet-name>
|
||||||
|
|
Loading…
Reference in a new issue