xsddoc/src/net/sf/xframe/xsddoc Processor.java,1.33,1.34
Kurt Riede <[email protected]> Thu, 13 Jan 2005 15:56:48 +0000
| Newsgroups | gmane.text.xml.xframe.xsddoc.devel |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/xframe/xsddoc/src/net/sf/xframe/xsddoc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24880/src/net/sf/xframe/xsddoc
Modified Files:
Processor.java
Log Message:
fist version of an index of all components (see RFE 1100551)
Index: Processor.java
===================================================================
RCS file: /cvsroot/xframe/xsddoc/src/net/sf/xframe/xsddoc/Processor.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** Processor.java 28 Dec 2004 10:52:22 -0000 1.33
--- Processor.java 13 Jan 2005 15:56:37 -0000 1.34
***************
*** 54,61 ****
--- 54,63 ----
import net.sf.xframe.xsddoc.util.XMLUtil;
+ import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+ import org.w3c.dom.Text;
import org.xml.sax.SAXException;
***************
*** 123,129 ****
--- 125,137 ----
private TransformerFactory tFactory = null;
+ /** Index transformer of all components. */
+ private Transformer tIndexAll = null;
+
/** Index transformer. */
private Transformer tIndex = null;
+ /** overviewAll transformer. */
+ private Transformer tOverviewAll = null;
+
/** overviewNamespaces transformer. */
private Transformer tOverviewNamespaces = null;
***************
*** 518,521 ****
--- 526,530 ----
tFactory.setErrorListener(new ConsoleErrorListener());
tFactory.setURIResolver(new ResourceResolver());
+ tOverviewAll = createTransformer("overview-all.xsl");
tOverviewNamespaces = createTransformer("overview-namespaces.xsl");
tOverviewNamespace = createTransformer("overview-namespace.xsl");
***************
*** 523,526 ****
--- 532,536 ----
tSchemaIndex = createTransformer("schema-index.xsl");
tComponent = createTransformer("component.xsl");
+ tIndexAll = createTransformer("index-all.xsl");
tIndex = createTransformer("index.xsl");
tHtml = createTransformer("xml2html.xsl");
***************
*** 580,585 ****
--- 590,597 ----
final Source source = getSource(schema, systemId);
transform(source, tIndex, out + FILE_SEP + "index" + getExtension());
+ transform(source, tOverviewAll, out, "overview-all");
transform(source, tOverviewNamespaces, out, "overview-namespaces");
transform(source, tSchemaSummary, out, "schema-summary");
+ transform(source, tIndexAll, out, "index-all");
transform(source, tHelp, out, "help-doc");
process(schema, mainSchemaLocation);
***************
*** 702,713 ****
((Element) component).setAttributeNS(XSDDOC_NAMESPACE, XSDDOC_PREFIX + ":" + XSDDOCID_ATTR, "a");
}
! if (xml) {
! transform(source, tComponent, component,
! subfolder + FILE_SEP + componentType + FILE_SEP + name + getExtension(),
! namespaceURI, componentType, name);
! } else {
! final Node result = transform(source, tComponent, component, namespaceURI, componentType, name);
transform(new DOMSource(result, DOM_PROTOCOL), tHtml,
subfolder + FILE_SEP + componentType + FILE_SEP + name + getExtension());
}
if (!"".equals(parentName)) {
--- 714,734 ----
((Element) component).setAttributeNS(XSDDOC_NAMESPACE, XSDDOC_PREFIX + ":" + XSDDOCID_ATTR, "a");
}
! try {
! if (xml) {
! transform(source, tComponent, component,
! subfolder + FILE_SEP + componentType + FILE_SEP + name + getExtension(),
! namespaceURI, componentType, name);
! } else {
! final Node result = transform(source, tComponent, component, namespaceURI, componentType, name);
! transform(new DOMSource(result, DOM_PROTOCOL), tHtml,
! subfolder + FILE_SEP + componentType + FILE_SEP + name + getExtension());
! }
! } catch (Throwable t) {
! final Node result = createError(namespaceURI, componentType, name, t);
transform(new DOMSource(result, DOM_PROTOCOL), tHtml,
subfolder + FILE_SEP + componentType + FILE_SEP + name + getExtension());
+ if (isDebug()) {
+ System.out.println(ExceptionUtil.printStackTrace(t));
+ }
}
if (!"".equals(parentName)) {
***************
*** 721,724 ****
--- 742,771 ----
/**
+ * Creates an error page for a schema component.
+ *
+ * @param namespaceURI namespace URI of current schema
+ * @param componentType type of component
+ * @param name name of component
+ * @param throwable the exception that occured during processing
+ * @return DOM document with error information
+ */
+ private Node createError(final String namespaceURI, final String componentType, final String name,
+ final Throwable throwable) {
+ final DOMImplementation domImpl = builder.getDOMImplementation();
+ final Document document = domImpl.createDocument(XSDDOC_NAMESPACE, "xsddoc", null);
+ final Element xsddocElement = document.getDocumentElement();
+ final Element componentElement = document.createElementNS(XSDDOC_NAMESPACE, "component");
+ componentElement.setAttributeNS(null, "namespace", namespaceURI);
+ componentElement.setAttributeNS(null, "name", name);
+ componentElement.setAttributeNS(null, "type", componentType);
+ xsddocElement.appendChild(componentElement);
+ final Element errorElement = document.createElementNS(XSDDOC_NAMESPACE, "error");
+ componentElement.appendChild(errorElement);
+ final Text errorText = document.createTextNode(ExceptionUtil.printStackTrace(throwable));
+ errorElement.appendChild(errorText);
+ return document;
+ }
+
+ /**
* Search for local declarations within a given component.
*
***************
*** 1103,1109 ****
*/
Document getDocument(final String systemId) throws SAXException, IOException {
- if (debug) {
- System.out.println("getDocument: " + systemId);
- }
Document doc = (Document) schemaCache.get(systemId);
if (doc == null) {
--- 1150,1153 ----
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt