mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
implementing a urlresolver for xsl so that we can include documents properly using the document function.
updates to press release xsds - it's now basically working. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3926 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -27,6 +27,7 @@ import org.alfresco.service.cmr.repository.ContentService;
|
|||||||
import org.alfresco.service.cmr.repository.ContentWriter;
|
import org.alfresco.service.cmr.repository.ContentWriter;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
|
import org.alfresco.web.bean.wcm.AVMConstants;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
@@ -39,8 +40,6 @@ import org.w3c.dom.Document;
|
|||||||
public class OutputUtil
|
public class OutputUtil
|
||||||
{
|
{
|
||||||
private static final Log LOGGER = LogFactory.getLog(OutputUtil.class);
|
private static final Log LOGGER = LogFactory.getLog(OutputUtil.class);
|
||||||
private static final String PARENT_AVM_PATH =
|
|
||||||
"repo-1:/repo-1/alice/appBase/avm_webapps/ROOT";
|
|
||||||
|
|
||||||
private static String stripExtension(String s)
|
private static String stripExtension(String s)
|
||||||
{
|
{
|
||||||
@@ -65,13 +64,16 @@ public class OutputUtil
|
|||||||
|
|
||||||
String fullAvmPath = parentPath + '/' + generatedFileName;
|
String fullAvmPath = parentPath + '/' + generatedFileName;
|
||||||
|
|
||||||
|
String avmStore = parentPath.substring(0, parentPath.indexOf(":/"));
|
||||||
|
String sandBoxUrl = AVMConstants.buildAVMStoreUrl(avmStore);
|
||||||
|
|
||||||
if (LOGGER.isDebugEnabled())
|
if (LOGGER.isDebugEnabled())
|
||||||
LOGGER.debug("Created file node for file: " +
|
LOGGER.debug("Created file node for file: " +
|
||||||
fullAvmPath);
|
fullAvmPath);
|
||||||
|
|
||||||
TemplateOutputMethod tom = tt.getOutputMethods().get(0);
|
TemplateOutputMethod tom = tt.getOutputMethods().get(0);
|
||||||
OutputStreamWriter out = new OutputStreamWriter(fileOut);
|
OutputStreamWriter out = new OutputStreamWriter(fileOut);
|
||||||
tom.generate(xml, tt, out);
|
tom.generate(xml, tt, sandBoxUrl, out);
|
||||||
out.close();
|
out.close();
|
||||||
|
|
||||||
NodeRef outputNodeRef = AVMNodeConverter.ToNodeRef(-1, fullAvmPath);
|
NodeRef outputNodeRef = AVMNodeConverter.ToNodeRef(-1, fullAvmPath);
|
||||||
@@ -117,11 +119,15 @@ public class OutputUtil
|
|||||||
String generatedFileName = (String)
|
String generatedFileName = (String)
|
||||||
nodeService.getProperty(generatedNodeRef,
|
nodeService.getProperty(generatedNodeRef,
|
||||||
ContentModel.PROP_NAME);
|
ContentModel.PROP_NAME);
|
||||||
|
String avmPath = (String)AVMNodeConverter.ToAVMVersionPath(nodeRef)[1];
|
||||||
|
String avmStore = avmPath.substring(0, avmPath.indexOf(":/"));
|
||||||
|
String sandBoxUrl = AVMConstants.buildAVMStoreUrl(avmStore);
|
||||||
|
|
||||||
if (LOGGER.isDebugEnabled())
|
if (LOGGER.isDebugEnabled())
|
||||||
LOGGER.debug("regenerating file node for : " + fileName + " (" +
|
LOGGER.debug("regenerating file node for : " + fileName + " (" +
|
||||||
nodeRef.toString() + ") to " + generatedNodeRef.toString());
|
nodeRef.toString() + ") to " + generatedNodeRef.toString());
|
||||||
|
|
||||||
|
|
||||||
// get a writer for the content and put the file
|
// get a writer for the content and put the file
|
||||||
ContentWriter writer = contentService.getWriter(generatedNodeRef,
|
ContentWriter writer = contentService.getWriter(generatedNodeRef,
|
||||||
ContentModel.PROP_CONTENT,
|
ContentModel.PROP_CONTENT,
|
||||||
@@ -132,7 +138,7 @@ public class OutputUtil
|
|||||||
// put a loop to generate all output methods
|
// put a loop to generate all output methods
|
||||||
TemplateOutputMethod tom = tt.getOutputMethods().get(0);
|
TemplateOutputMethod tom = tt.getOutputMethods().get(0);
|
||||||
OutputStreamWriter out = new OutputStreamWriter(writer.getContentOutputStream());
|
OutputStreamWriter out = new OutputStreamWriter(writer.getContentOutputStream());
|
||||||
tom.generate(xml, tt, out);
|
tom.generate(xml, tt, sandBoxUrl, out);
|
||||||
out.close();
|
out.close();
|
||||||
|
|
||||||
LOGGER.debug("generated " + fileName + " using " + tom);
|
LOGGER.debug("generated " + fileName + " using " + tom);
|
||||||
|
@@ -32,10 +32,12 @@ public interface TemplateOutputMethod
|
|||||||
*
|
*
|
||||||
* @param xmlContent the xml content to serialize
|
* @param xmlContent the xml content to serialize
|
||||||
* @param tt the template type that collected the xml content.
|
* @param tt the template type that collected the xml content.
|
||||||
|
* @param sandBoxUrl the url of the current sandbox
|
||||||
* @param out the writer to serialize to.
|
* @param out the writer to serialize to.
|
||||||
*/
|
*/
|
||||||
public void generate(final Document xmlContent,
|
public void generate(final Document xmlContent,
|
||||||
final TemplateType tt,
|
final TemplateType tt,
|
||||||
|
final String sandBoxUrl,
|
||||||
final Writer out)
|
final Writer out)
|
||||||
throws Exception;
|
throws Exception;
|
||||||
}
|
}
|
||||||
|
@@ -33,6 +33,7 @@ public class FreeMarkerOutputMethod
|
|||||||
|
|
||||||
public void generate(final Document xmlContent,
|
public void generate(final Document xmlContent,
|
||||||
final TemplateType tt,
|
final TemplateType tt,
|
||||||
|
final String sandBoxUrl,
|
||||||
final Writer out)
|
final Writer out)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@@ -17,6 +17,8 @@
|
|||||||
package org.alfresco.web.templating.xforms;
|
package org.alfresco.web.templating.xforms;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
import org.alfresco.web.templating.*;
|
import org.alfresco.web.templating.*;
|
||||||
import org.chiba.xml.util.DOMUtil;
|
import org.chiba.xml.util.DOMUtil;
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
@@ -30,7 +32,10 @@ import javax.xml.transform.URIResolver;
|
|||||||
import javax.xml.transform.dom.DOMSource;
|
import javax.xml.transform.dom.DOMSource;
|
||||||
import javax.xml.transform.sax.SAXTransformerFactory;
|
import javax.xml.transform.sax.SAXTransformerFactory;
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
import javax.xml.transform.stream.StreamSource;
|
||||||
import javax.xml.transform.stream.StreamResult;
|
import javax.xml.transform.stream.StreamResult;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Node;
|
import org.w3c.dom.Node;
|
||||||
@@ -41,6 +46,8 @@ public class XSLTOutputMethod
|
|||||||
implements TemplateOutputMethod
|
implements TemplateOutputMethod
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private static final Log LOGGER = LogFactory.getLog(XSLTOutputMethod.class);
|
||||||
|
|
||||||
private final NodeRef nodeRef;
|
private final NodeRef nodeRef;
|
||||||
|
|
||||||
public XSLTOutputMethod(final NodeRef nodeRef)
|
public XSLTOutputMethod(final NodeRef nodeRef)
|
||||||
@@ -50,6 +57,7 @@ public class XSLTOutputMethod
|
|||||||
|
|
||||||
public void generate(final Document xmlContent,
|
public void generate(final Document xmlContent,
|
||||||
final TemplateType tt,
|
final TemplateType tt,
|
||||||
|
final String sandBoxUrl,
|
||||||
final Writer out)
|
final Writer out)
|
||||||
throws ParserConfigurationException,
|
throws ParserConfigurationException,
|
||||||
TransformerConfigurationException,
|
TransformerConfigurationException,
|
||||||
@@ -58,11 +66,49 @@ public class XSLTOutputMethod
|
|||||||
IOException
|
IOException
|
||||||
{
|
{
|
||||||
TransformerFactory tf = TransformerFactory.newInstance();
|
TransformerFactory tf = TransformerFactory.newInstance();
|
||||||
TemplatingService ts = TemplatingService.getInstance();
|
final TemplatingService ts = TemplatingService.getInstance();
|
||||||
DOMSource source = new DOMSource(ts.parseXML(this.nodeRef));
|
DOMSource source = new DOMSource(ts.parseXML(this.nodeRef));
|
||||||
final Templates templates = tf.newTemplates(source);
|
final Templates templates = tf.newTemplates(source);
|
||||||
final Transformer t = templates.newTransformer();
|
final Transformer t = templates.newTransformer();
|
||||||
|
t.setURIResolver(new URIResolver()
|
||||||
|
{
|
||||||
|
public Source resolve(final String href, final String base)
|
||||||
|
throws TransformerException
|
||||||
|
{
|
||||||
|
URI uri = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
uri = new URI(sandBoxUrl + href);
|
||||||
|
}
|
||||||
|
catch (URISyntaxException e)
|
||||||
|
{
|
||||||
|
throw new TransformerException("unable to create uri " + sandBoxUrl + href, e);
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
LOGGER.debug("loading " + uri);
|
||||||
|
final Document d = ts.parseXML(uri.toURL().openStream());
|
||||||
|
LOGGER.debug("loaded " + ts.writeXMLToString(d));
|
||||||
|
return new DOMSource(d);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
LOGGER.warn(e);
|
||||||
|
throw new TransformerException("unable to load " + uri, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
t.setParameter("avm_store_url", sandBoxUrl);
|
||||||
|
LOGGER.debug("setting parameter avm_store_url=" + sandBoxUrl);
|
||||||
final StreamResult result = new StreamResult(out);
|
final StreamResult result = new StreamResult(out);
|
||||||
t.transform(new DOMSource(xmlContent), result);
|
try
|
||||||
|
{
|
||||||
|
t.transform(new DOMSource(xmlContent), result);
|
||||||
|
}
|
||||||
|
catch (TransformerException e)
|
||||||
|
{
|
||||||
|
LOGGER.error(e.getMessageAndLocation());
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@@ -0,0 +1,36 @@
|
|||||||
|
<!-- Footer -->
|
||||||
|
<div id="footer">
|
||||||
|
<div id="site">
|
||||||
|
<div id="footer-logos">
|
||||||
|
<a href="http://www.mysql.com/"><img src="/assets/images/footer/mysql.gif" alt="MySQL" title="MySQL" border="0" /></a>
|
||||||
|
<a href="http://www.jboss.org"><img src="/assets/images/footer/jboss.gif" alt="JBoss Certified Partner" title="JBoss Certified Partner" border="0" width="74" height="34" /></a>
|
||||||
|
<a href="http://www.springframework.org/"><img src="/assets/images/footer/spring.gif" alt="Spring Framework" title="Spring Framework" border="0" width="67" height="34" /></a>
|
||||||
|
<a href="http://www.hibernate.org/"><img src="/assets/images/footer/hibernate.gif" alt="Hibernate" title="Hibernate" border="0" width="111" height="34" /></a>
|
||||||
|
<a href="http://tomcat.apache.org"><img src="/assets/images/footer/tomcat.gif" alt="Tomcat" title="Tomcat" border="0" width="44" height="34" /></a>
|
||||||
|
<a href="http://lucene.apache.org/"><img src="/assets/images/footer/lucene.gif" alt="Lucene" title="Lucene" border="0" width="143" height="34" /></a>
|
||||||
|
<a href="http://myfaces.apache.org/"><img src="/assets/images/footer/myfaces.gif" alt="My Faces" title="My Faces" border="0" width="37" height="34" /></a>
|
||||||
|
</div>
|
||||||
|
<div id="footer-links">
|
||||||
|
<p>
|
||||||
|
<a href="/">Home</a> |
|
||||||
|
<a href="/legal/">Legal</a> |
|
||||||
|
<a href="/privacy/">Privacy</a> |
|
||||||
|
<a href="/accessibility/">Accessibility</a> |
|
||||||
|
<a href="/sitemap/">Site Map</a> |
|
||||||
|
<a href="/rss/?feed=all/">RSS</a>
|
||||||
|
<img src="/assets/images/icons/feedicon12.gif" alt="RSS" title="RSS" width="12" height="12" />
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a href="/about/">Open Source ECMS</a> |
|
||||||
|
<a href="/products/">CMS Products</a> |
|
||||||
|
<a href="/services/support/">Management Services</a> |
|
||||||
|
<a href="/resources/">EMS Resources</a>
|
||||||
|
</p>
|
||||||
|
<p>© 2005-2006 Alfresco Software, Inc., All Rights Reserved</p>
|
||||||
|
<p><img src="/assets/images/icons/powered_by_alfresco.gif" alt="Powered by Alfresco" width="88" height="32" /></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="clear:both; padding-bottom: 10px;"></div>
|
||||||
|
</div>
|
||||||
|
<div style="clear:both; padding-bottom: 20px;"></div>
|
||||||
|
<!-- End Footer -->
|
@@ -0,0 +1,40 @@
|
|||||||
|
<div id="masthead">
|
||||||
|
<!-- Search -->
|
||||||
|
<div id="top_links">
|
||||||
|
<ul>
|
||||||
|
<li><a href="/accessibility/">Accessibility</a> |</li>
|
||||||
|
<li><a href="/sitemap/">Site Map</a> |</li>
|
||||||
|
<li><a href="/about/contact/">Contact Us</a> |</li>
|
||||||
|
<li><a href="/store/">Store</a> |</li>
|
||||||
|
<li><a href="/rss/?feed=all">RSS</a> <img src="/assets/images/icons/feedicon10.gif" alt="RSS" title="RSS" width="10" height="10" /></li>
|
||||||
|
</ul>
|
||||||
|
<form action="http://www.google.com/search" method="get"><br />
|
||||||
|
<input type="hidden" name="sitesearch" value="www.alfresco.com" />
|
||||||
|
<input type="hidden" name="ie" value="UTF-8" />
|
||||||
|
<input type="hidden" name="oe" value="UTF-8" />
|
||||||
|
<input class="searchbox" type="text" size="20" value="Search..." name="query" onfocus="if (this.value == 'Search...') this.value = ''; " onblur="if (this.value == '') this.value = 'Search...';" />
|
||||||
|
<input class="searchbutton" type="submit" name="" value="Go" />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<!-- End Search -->
|
||||||
|
</div>
|
||||||
|
<div id="topnav">
|
||||||
|
<ul id="nav">
|
||||||
|
<li id="home"><a href="/" accesskey="h" ><span>Home</span></a></li>
|
||||||
|
<li id="products"><a href="/products/" accesskey="p" ><span>Products</span></a></li>
|
||||||
|
<li id="services"><a href="/services/support/" accesskey="s" ><span>Services</span></a></li>
|
||||||
|
<li id="customers"><a href="/customers/" accesskey="c" ><span>Customers</span></a></li>
|
||||||
|
<li id="partners"><a href="/partners/" accesskey="r" ><span>Partners</span></a></li>
|
||||||
|
<li id="about"><a href="/about/" accesskey="a" class="selected" ><span>About us</span></a></li>
|
||||||
|
<li id="developers"><a href="http://dev.alfresco.com/" accesskey="v" ><span>Developers</span></a></li>
|
||||||
|
<li id="blogs"><a href="http://blogs.alfresco.com/" accesskey="b" ><span>Blogs</span></a></li>
|
||||||
|
<li id="end"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="outer">
|
||||||
|
<div id="inner">
|
||||||
|
<div id="sabout">
|
||||||
|
<p><a href="/about/">Company</a>  |  <a href="/about/contact/">Contact</a>  |  <a href="/about/news/">News</a>  |  <a href="/about/events/">Events</a>  |  <a href="/about/people/">People</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<alfresco:about-blurb xmlns:alfresco="http://www.alfresco.org/alfresco">
|
||||||
|
<alfresco:name>Activiti</alfresco:name>
|
||||||
|
<alfresco:body>Alfresco used to be called Activiti. See About Alfresco.</alfresco:body>
|
||||||
|
</alfresco:about-blurb>
|
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
||||||
targetNamespace="http://www.alfresco.org/aflresco"
|
targetNamespace="http://www.alfresco.org/alfresco"
|
||||||
elementFormDefault="qualified">
|
elementFormDefault="qualified">
|
||||||
<xs:element name="about-blurb">
|
<xs:element name="about-blurb">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
|
@@ -4,18 +4,12 @@
|
|||||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
||||||
exclude-result-prefixes="xhtml">
|
exclude-result-prefixes="xhtml">
|
||||||
<!--
|
|
||||||
<xsl:character-map name="htmlentities">
|
|
||||||
<xsl:output-character character=" " string="&nbsp;" />
|
|
||||||
<xsl:output-character character="—" string="&mdash;" />
|
|
||||||
<xsl:output-character character="©" string="&copy;" />
|
|
||||||
</xsl:character-map>
|
|
||||||
-->
|
|
||||||
<xsl:output method="html" version="4.01" encoding="UTF-8" indent="yes"
|
<xsl:output method="html" version="4.01" encoding="UTF-8" indent="yes"
|
||||||
use-character-maps="htmlentities"
|
|
||||||
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
|
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
|
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
|
||||||
<xsl:preserve-space elements="*"/>
|
<xsl:preserve-space elements="*"/>
|
||||||
|
|
||||||
<xsl:template match="/">
|
<xsl:template match="/">
|
||||||
|
this template produces no output. the xml is used by press-release.xsl
|
||||||
|
</xsl:template>
|
||||||
</xsl:stylesheet>
|
</xsl:stylesheet>
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
||||||
targetNamespace="http://www.alfresco.org/aflresco"
|
targetNamespace="http://www.alfresco.org/alfresco"
|
||||||
elementFormDefault="qualified">
|
elementFormDefault="qualified">
|
||||||
<xs:simpleType name="category">
|
<xs:simpleType name="category">
|
||||||
<xs:restriction base="xs:string">
|
<xs:restriction base="xs:string">
|
||||||
@@ -14,6 +14,7 @@
|
|||||||
</xs:simpleType>
|
</xs:simpleType>
|
||||||
<xs:simpleType name="about-blurb">
|
<xs:simpleType name="about-blurb">
|
||||||
<xs:restriction base="xs:string">
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="Activiti"/>
|
||||||
<xs:enumeration value="Alfresco"/>
|
<xs:enumeration value="Alfresco"/>
|
||||||
<xs:enumeration value="Kofax"/>
|
<xs:enumeration value="Kofax"/>
|
||||||
<xs:enumeration value="Aarden Ringcroft"/>
|
<xs:enumeration value="Aarden Ringcroft"/>
|
||||||
|
@@ -1,153 +1,142 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<xsl:stylesheet version="1.0"
|
<xsl:stylesheet version="1.0"
|
||||||
xmlns:xhtml="http://www.w3.org/1999/xhtml"
|
xmlns:xhtml="http://www.w3.org/1999/xhtml"
|
||||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
||||||
exclude-result-prefixes="xhtml">
|
exclude-result-prefixes="xhtml">
|
||||||
<!--
|
<xsl:output method="html" encoding="UTF-8" indent="yes"
|
||||||
<xsl:character-map name="htmlentities">
|
|
||||||
<xsl:output-character character=" " string="&nbsp;" />
|
|
||||||
<xsl:output-character character="—" string="&mdash;" />
|
|
||||||
<xsl:output-character character="©" string="&copy;" />
|
|
||||||
</xsl:character-map>
|
|
||||||
-->
|
|
||||||
<xsl:output method="html" version="4.01" encoding="UTF-8" indent="yes"
|
|
||||||
use-character-maps="htmlentities"
|
|
||||||
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
|
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
|
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
|
||||||
<xsl:preserve-space elements="*"/>
|
|
||||||
|
|
||||||
<xsl:template match="/">
|
<xsl:preserve-space elements="*"/>
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<xsl:param name="avm_store_url" select="'not_specified'"/>
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
||||||
<title><xsl:value-of select="/alfresco:press-release/alfresco:title"/></title>
|
|
||||||
<meta name="description" lang="en">
|
|
||||||
<xsl:attribute name="content">
|
|
||||||
<xsl:value-of select="/alfresco:press-release/alfresco:abstract"/>
|
|
||||||
</xsl:attribute>
|
|
||||||
</meta>
|
|
||||||
<link href="/assets/css/screen.css" rel="stylesheet" type="text/css" media="screen" />
|
|
||||||
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.nooked.com/news/feed/alfresco" />
|
|
||||||
<style type="text/css">
|
|
||||||
p.leader {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<script language="JavaScript" type="text/javascript" src="/assets/js/controls.js"></script>
|
|
||||||
<script language="JavaScript" type="text/javascript" src="/assets/js/search.js" ></script>
|
|
||||||
<div id="container">
|
|
||||||
<div id="masthead">
|
|
||||||
<!-- Search -->
|
|
||||||
<div id="top_links">
|
|
||||||
<ul>
|
|
||||||
<li><a href="/accessibility/">Accessibility</a> |</li>
|
|
||||||
<li><a href="/sitemap/">Site Map</a> |</li>
|
|
||||||
<li><a href="/about/contact/">Contact Us</a> |</li>
|
|
||||||
<li><a href="/store/">Store</a> |</li>
|
|
||||||
<li><a href="/rss/?feed=all">RSS</a> <img src="/assets/images/icons/feedicon10.gif" alt="RSS" title="RSS" width="10" height="10" /></li>
|
|
||||||
</ul>
|
|
||||||
<form action="http://www.google.com/search" method="get"><br />
|
|
||||||
<input type="hidden" name="sitesearch" value="www.alfresco.com" />
|
|
||||||
<input type="hidden" name="ie" value="UTF-8" />
|
|
||||||
<input type="hidden" name="oe" value="UTF-8" />
|
|
||||||
<input class="searchbox" type="text" size="20" value="Search..." name="query" onfocus="if (this.value == 'Search...') this.value = ''; " onblur="if (this.value == '') this.value = 'Search...';" />
|
|
||||||
<input class="searchbutton" type="submit" name="" value="Go" />
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<!-- End Search -->
|
|
||||||
</div>
|
|
||||||
<div id="topnav">
|
|
||||||
<ul id="nav">
|
|
||||||
<li id="home"><a href="/" accesskey="h" ><span>Home</span></a></li>
|
|
||||||
<li id="products"><a href="/products/" accesskey="p" ><span>Products</span></a></li>
|
|
||||||
<li id="services"><a href="/services/support/" accesskey="s" ><span>Services</span></a></li>
|
|
||||||
<li id="customers"><a href="/customers/" accesskey="c" ><span>Customers</span></a></li>
|
|
||||||
<li id="partners"><a href="/partners/" accesskey="r" ><span>Partners</span></a></li>
|
|
||||||
<li id="about"><a href="/about/" accesskey="a" class="selected" ><span>About us</span></a></li>
|
|
||||||
<li id="developers"><a href="http://dev.alfresco.com/" accesskey="v" ><span>Developers</span></a></li>
|
|
||||||
<li id="blogs"><a href="http://blogs.alfresco.com/" accesskey="b" ><span>Blogs</span></a></li>
|
|
||||||
<li id="end"></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div id="outer">
|
|
||||||
<div id="inner">
|
|
||||||
<div id="sabout">
|
|
||||||
<p><a href="/about/">Company</a>  |  <a href="/about/contact/">Contact</a>  |  <a href="/about/news/">News</a>  |  <a href="/about/events/">Events</a>  |  <a href="/about/people/">People</a></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="content"></div>
|
|
||||||
<!-- Main Content -->
|
|
||||||
<div id="main_content">
|
|
||||||
|
|
||||||
<!-- BEGIN MAIN CONTENT -->
|
<xsl:template match="/">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
|
<title><xsl:value-of select="/alfresco:press-release/alfresco:title"/></title>
|
||||||
|
<meta name="description" lang="en" >
|
||||||
|
<xsl:attribute name="content"><xsl:value-of select="/alfresco:press-release/alfresco:title"/></xsl:attribute>
|
||||||
|
</meta>
|
||||||
|
<link href="/assets/css/screen.css" rel="stylesheet" type="text/css" media="screen"></link>
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.nooked.com/news/feed/alfresco"></link>
|
||||||
|
<style type="text/css">
|
||||||
|
p.leader {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script language="JavaScript" type="text/javascript" src="/assets/js/controls.js"></script>
|
||||||
|
<script language="JavaScript" type="text/javascript" src="/assets/js/search.js" ></script>
|
||||||
|
|
||||||
<h1><xsl:value-of select="/alfresco:press-release/alfresco:title"/></h1>
|
<div id="container">
|
||||||
<p><strong><xsl:value-of select="/alfresco:press-release/alfresco:abstract"/></strong></p>
|
<div id="masthead">
|
||||||
<p><xsl:value-of select="/alfresco:press-release/alfresco:location"/>—<xsl:value-of select="/alfresco:press-release/alfresco:launch_date"/>—</p>
|
<!-- Search -->
|
||||||
<xsl:for-each select="/alfresco:press-release/alfresco:body">
|
<div id="top_links">
|
||||||
<p><xsl:value-of select="."/></p>
|
<ul>
|
||||||
</xsl:for-each>
|
<li><a href="/accessibility/">Accessibility</a> |</li>
|
||||||
<xsl:for-each select="/alfresco:press-release/alfresco:include_about_blurb">
|
<li><a href="/sitemap/">Site Map</a> |</li>
|
||||||
<xsl:variable name="blurb-id"><xsl:value-of select="."/></xsl:variable>
|
<li><a href="/about/contact/">Contact Us</a> |</li>
|
||||||
<h2><xsl:value-of select="document(concat($blurb-id, '.xml'))/alfresco:about-blurb/alfresco:name"/></h2>
|
<li><a href="/store/">Store</a> |</li>
|
||||||
<xsl:for-each select="document(concat($blurb-id, '.xml'))/alfresco:about-blurb/alfresco:body">
|
<li><a href="/rss/?feed=all">RSS</a> <img src="/assets/images/icons/feedicon10.gif" alt="RSS" title="RSS" width="10" height="10" /></li>
|
||||||
<p><xsl:value-of select="."/></p>
|
</ul>
|
||||||
</xsl:for-each>
|
<form action="http://www.google.com/search" method="get"><br />
|
||||||
</xsl:for-each>
|
<input type="hidden" name="sitesearch" value="www.alfresco.com" />
|
||||||
<xsl:if test="/alfresco:press-release/alfresco:include_media_contacts = true">
|
<input type="hidden" name="ie" value="UTF-8" />
|
||||||
<h2>Media Contacts</h2>
|
<input type="hidden" name="oe" value="UTF-8" />
|
||||||
<div><p>John Newton<br />Alfresco Software Inc.<br />+44 1628 860639<br />press@alfresco.com</p></div>
|
<input class="searchbox" type="text" size="20" value="Search..." name="query" onfocus="if (this.value == 'Search...') this.value = ''; " onblur="if (this.value == '') this.value = 'Search...';" />
|
||||||
<div><p>Chuck Tanowitz<br />Schwartz Communications<br />+1 781 684-0770<br />alfresco@schwartz-pr.com</p></div>
|
<input class="searchbutton" type="submit" name="" value="Go" />
|
||||||
</xsl:if>
|
</form>
|
||||||
<!-- END MAIN CONTENT -->
|
</div>
|
||||||
|
<!-- End Search -->
|
||||||
|
</div>
|
||||||
|
<div id="topnav">
|
||||||
|
<ul id="nav">
|
||||||
|
<li id="home"><a href="/" accesskey="h" ><span>Home</span></a></li>
|
||||||
|
<li id="products"><a href="/products/" accesskey="p" ><span>Products</span></a></li>
|
||||||
|
<li id="services"><a href="/services/support/" accesskey="s" ><span>Services</span></a></li>
|
||||||
|
<li id="customers"><a href="/customers/" accesskey="c" ><span>Customers</span></a></li>
|
||||||
|
<li id="partners"><a href="/partners/" accesskey="r" ><span>Partners</span></a></li>
|
||||||
|
<li id="about"><a href="/about/" accesskey="a" class="selected" ><span>About us</span></a></li>
|
||||||
|
<li id="developers"><a href="http://dev.alfresco.com/" accesskey="v" ><span>Developers</span></a></li>
|
||||||
|
<li id="blogs"><a href="http://blogs.alfresco.com/" accesskey="b" ><span>Blogs</span></a></li>
|
||||||
|
<li id="end"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="outer">
|
||||||
|
<div id="inner">
|
||||||
|
<div id="sabout">
|
||||||
|
<p><a href="/about/">Company</a>  |  <a href="/about/contact/">Contact</a>  |  <a href="/about/news/">News</a>  |  <a href="/about/events/">Events</a>  |  <a href="/about/people/">People</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="content"> </div>
|
||||||
|
<!-- Main Content -->
|
||||||
|
<div id="main_content">
|
||||||
|
|
||||||
</div>
|
<!-- BEGIN MAIN CONTENT -->
|
||||||
<!-- Feature Content -->
|
<h1><xsl:value-of select="/alfresco:press-release/alfresco:title"/></h1>
|
||||||
<div id="right_content">
|
<p><strong><xsl:value-of select="/alfresco:press-release/alfresco:abstract"/></strong></p>
|
||||||
</div>
|
<p><xsl:value-of select="/alfresco:press-release/alfresco:location"/>—<xsl:value-of select="/alfresco:press-release/alfresco:launch_date"/>—</p>
|
||||||
<div id="clear"></div>
|
<xsl:for-each select="/alfresco:press-release/alfresco:body">
|
||||||
</div>
|
<p><xsl:value-of select="." disable-output-escaping="yes"/></p>
|
||||||
<!--All Three End -->
|
</xsl:for-each>
|
||||||
<!-- Footer -->
|
<xsl:for-each select="/alfresco:press-release/alfresco:include_about_blurb">
|
||||||
<div id="footer">
|
<xsl:variable name="blurb-id"><xsl:value-of select="."/></xsl:variable>
|
||||||
<div id="site">
|
<xsl:variable name="blurb-url"><xsl:value-of select="concat('/media/releases/content/about_blurbs/', concat($blurb-id, '.xml'))"/></xsl:variable>
|
||||||
<div id="footer-logos">
|
<h2><xsl:value-of select="document($blurb-url)/alfresco:about-blurb/alfresco:name"/></h2>
|
||||||
<a href="http://www.mysql.com/"><img src="/assets/images/footer/mysql.gif" alt="MySQL" title="MySQL" border="0" /></a>
|
<xsl:for-each select="document($blurb-url)/alfresco:about-blurb/alfresco:body">
|
||||||
<a href="http://www.jboss.org"><img src="/assets/images/footer/jboss.gif" alt="JBoss Certified Partner" title="JBoss Certified Partner" border="0" width="74" height="34" /></a>
|
<p><xsl:value-of select="." disable-output-escaping="yes"/></p>
|
||||||
<a href="http://www.springframework.org/"><img src="/assets/images/footer/spring.gif" alt="Spring Framework" title="Spring Framework" border="0" width="67" height="34" /></a>
|
</xsl:for-each>
|
||||||
<a href="http://www.hibernate.org/"><img src="/assets/images/footer/hibernate.gif" alt="Hibernate" title="Hibernate" border="0" width="111" height="34" /></a>
|
</xsl:for-each>
|
||||||
<a href="http://tomcat.apache.org"><img src="/assets/images/footer/tomcat.gif" alt="Tomcat" title="Tomcat" border="0" width="44" height="34" /></a>
|
<h2>Media Contacts</h2>
|
||||||
<a href="http://lucene.apache.org/"><img src="/assets/images/footer/lucene.gif" alt="Lucene" title="Lucene" border="0" width="143" height="34" /></a>
|
<div><p>John Newton<br />Alfresco Software Inc.<br />+44 1628 860639<br />press@alfresco.com</p></div>
|
||||||
<a href="http://myfaces.apache.org/"><img src="/assets/images/footer/myfaces.gif" alt="My Faces" title="My Faces" border="0" width="37" height="34" /></a></div>
|
<div><p>Chuck Tanowitz<br />Schwartz Communications<br />+1 781 684-0770<br />alfresco@schwartz-pr.com</p></div>
|
||||||
<div id="footer-links">
|
<!-- END MAIN CONTENT -->
|
||||||
<p>
|
</div>
|
||||||
<a href="/">Home</a> |
|
<!-- Feature Content -->
|
||||||
<a href="/legal/">Legal</a> |
|
<div id="right_content"> </div>
|
||||||
<a href="/privacy/">Privacy</a> |
|
<div id="clear"></div>
|
||||||
<a href="/accessibility/">Accessibility</a> |
|
|
||||||
<a href="/sitemap/">Site Map</a> |
|
|
||||||
<a href="/rss/?feed=all/">RSS</a>
|
|
||||||
<img src="/assets/images/icons/feedicon12.gif" alt="RSS" title="RSS" width="12" height="12" />
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<a href="/about/">Open Source ECMS</a> |
|
|
||||||
<a href="/products/">CMS Products</a> |
|
|
||||||
<a href="/services/support/">Management Services</a> |
|
|
||||||
<a href="/resources/">EMS Resources</a>
|
|
||||||
</p>
|
|
||||||
<p>© 2005-2006 Alfresco Software, Inc., All Rights Reserved</p>
|
|
||||||
<p><img src="/assets/images/icons/powered_by_alfresco.gif" alt="Powered by Alfresco" width="88" height="32" /></p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<!--All Three End -->
|
||||||
<div style="clear:both; padding-bottom: 10px;"></div>
|
<!-- Footer -->
|
||||||
</div>
|
<div id="footer">
|
||||||
<div style="clear:both; padding-bottom: 20px;"></div>
|
<div id="site">
|
||||||
<!-- End Footer -->
|
<div id="footer-logos">
|
||||||
</body>
|
<a href="http://www.mysql.com/"><img src="/assets/images/footer/mysql.gif" alt="MySQL" title="MySQL" border="0" /></a>
|
||||||
</html>
|
<a href="http://www.jboss.org"><img src="/assets/images/footer/jboss.gif" alt="JBoss Certified Partner" title="JBoss Certified Partner" border="0" width="74" height="34" /></a>
|
||||||
</xsl:template>
|
<a href="http://www.springframework.org/"><img src="/assets/images/footer/spring.gif" alt="Spring Framework" title="Spring Framework" border="0" width="67" height="34" /></a>
|
||||||
|
<a href="http://www.hibernate.org/"><img src="/assets/images/footer/hibernate.gif" alt="Hibernate" title="Hibernate" border="0" width="111" height="34" /></a>
|
||||||
|
<a href="http://tomcat.apache.org"><img src="/assets/images/footer/tomcat.gif" alt="Tomcat" title="Tomcat" border="0" width="44" height="34" /></a>
|
||||||
|
<a href="http://lucene.apache.org/"><img src="/assets/images/footer/lucene.gif" alt="Lucene" title="Lucene" border="0" width="143" height="34" /></a>
|
||||||
|
<a href="http://myfaces.apache.org/"><img src="/assets/images/footer/myfaces.gif" alt="My Faces" title="My Faces" border="0" width="37" height="34" /></a></div>
|
||||||
|
<div id="footer-links">
|
||||||
|
<p>
|
||||||
|
<a href="/">Home</a> |
|
||||||
|
<a href="/legal/">Legal</a> |
|
||||||
|
<a href="/privacy/">Privacy</a> |
|
||||||
|
<a href="/accessibility/">Accessibility</a> |
|
||||||
|
<a href="/sitemap/">Site Map</a> |
|
||||||
|
<a href="/rss/?feed=all/">RSS</a>
|
||||||
|
<img src="/assets/images/icons/feedicon12.gif" alt="RSS" title="RSS" width="12" height="12" />
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a href="/about/">Open Source ECMS</a> |
|
||||||
|
<a href="/products/">CMS Products</a> |
|
||||||
|
<a href="/services/support/">Management Services</a> |
|
||||||
|
<a href="/resources/">EMS Resources</a>
|
||||||
|
</p>
|
||||||
|
<p>© 2005-2006 Alfresco Software, Inc., All Rights Reserved</p>
|
||||||
|
<p><img src="/assets/images/icons/powered_by_alfresco.gif" alt="Powered by Alfresco" width="88" height="32" /></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="clear:both; padding-bottom: 10px;"></div>
|
||||||
|
</div>
|
||||||
|
<div style="clear:both; padding-bottom: 20px;"></div>
|
||||||
|
<!-- End Footer -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</xsl:template>
|
||||||
</xsl:stylesheet>
|
</xsl:stylesheet>
|
||||||
|
Reference in New Issue
Block a user