xml
Class DTDGenerator

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by xml.DTDGenerator
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public class DTDGenerator
extends org.xml.sax.helpers.DefaultHandler

DTDGenerator
Generates a possible DTD from an XML document instance. Pure SAX version of the Saxon DTDGenerator The program has no remaining dependencies on Saxon; all it needs is: JAXP 1.1 SAX2 A JAXP 1.1 conformant XML parser Java 1.2

Version:
7.0: separated from Saxon source, now works with any JAXP 1.1 XML parser Adapted for the jEdit XML Plugin by Martin Raspe (hertzhaft@biblhertz.it)
Author:
M.H.Kay

Field Summary
protected static int MAX_ENUMERATION_VALUES
           
protected static int MAX_ID_VALUES
           
protected static int MIN_ENUMERATION_INSTANCES
           
protected static int MIN_ENUMERATION_RATIO
           
protected static int MIN_FIXED
           
protected static int MIN_ID_VALUES
           
 
Constructor Summary
DTDGenerator()
           
 
Method Summary
 void characters(char[] ch, int start, int length)
          Handle character data.
 void endElement(java.lang.String uri, java.lang.String localName, java.lang.String name)
          End of element.
 org.xml.sax.InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId)
          We ignore all references to external entities such as DOCTYPE declarations.
 void startElement(java.lang.String uri, java.lang.String localName, java.lang.String name, org.xml.sax.Attributes attributes)
          Handle the start of an element.
static java.lang.String write(org.gjt.sp.jedit.View view, java.lang.String xml)
          Write a DTD for the given XML document
static java.lang.String writeRNG(org.gjt.sp.jedit.View view, java.lang.String xml)
          (planned) Write a Relax NG Schema for the given XML document
static java.lang.String writeXSD(org.gjt.sp.jedit.View view, java.lang.String xml)
          (planned) Write an XML Schema for the given XML document
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MIN_ENUMERATION_INSTANCES

protected static int MIN_ENUMERATION_INSTANCES

MAX_ENUMERATION_VALUES

protected static int MAX_ENUMERATION_VALUES

MIN_ENUMERATION_RATIO

protected static int MIN_ENUMERATION_RATIO

MIN_FIXED

protected static int MIN_FIXED

MIN_ID_VALUES

protected static int MIN_ID_VALUES

MAX_ID_VALUES

protected static int MAX_ID_VALUES
Constructor Detail

DTDGenerator

public DTDGenerator()
Method Detail

write

public static java.lang.String write(org.gjt.sp.jedit.View view,
                                     java.lang.String xml)
Write a DTD for the given XML document


writeXSD

public static java.lang.String writeXSD(org.gjt.sp.jedit.View view,
                                        java.lang.String xml)
(planned) Write an XML Schema for the given XML document


writeRNG

public static java.lang.String writeRNG(org.gjt.sp.jedit.View view,
                                        java.lang.String xml)
(planned) Write a Relax NG Schema for the given XML document


resolveEntity

public org.xml.sax.InputSource resolveEntity(java.lang.String publicId,
                                             java.lang.String systemId)
                                      throws org.xml.sax.SAXException
We ignore all references to external entities such as DOCTYPE declarations. Method borrowed from xml.parser.SAXParserImpl

Specified by:
resolveEntity in interface org.xml.sax.EntityResolver
Overrides:
resolveEntity in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

startElement

public void startElement(java.lang.String uri,
                         java.lang.String localName,
                         java.lang.String name,
                         org.xml.sax.Attributes attributes)
                  throws org.xml.sax.SAXException
Handle the start of an element. Record information about the position of this element relative to its parent, and about the attributes of the element.

Specified by:
startElement in interface org.xml.sax.ContentHandler
Overrides:
startElement in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

endElement

public void endElement(java.lang.String uri,
                       java.lang.String localName,
                       java.lang.String name)
                throws org.xml.sax.SAXException
End of element. If sequenced, check that all expected children are accounted for.

Specified by:
endElement in interface org.xml.sax.ContentHandler
Overrides:
endElement in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws org.xml.sax.SAXException
Handle character data. Make a note whether significant character data is found in the element

Specified by:
characters in interface org.xml.sax.ContentHandler
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException