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