This is the mail archive of the java-discuss@sourceware.cygnus.com mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Java XML Parser


Hi,

XP is an XML Parser in Java by James Clark. If you follow
these simple steps you can compile it with gcj:

$ mkdir xml
$ cd xml

Download from

  http://www.jclark.com/xml/xp/index.html

the file "xp.zip" and save it in the xml dir.

Download from

  http://www.megginson.com/SAX/

the file "saxjava-1.0.zip" and save it in the xml dir.

$ unzip xp.zip
$ rm -rf docs
$ rm -f xp.jar xp.zip
$ unzip saxjava-1.0.zip
$ rm -f *.java *.txt *.class sax.jar saxjava-1.0.zip
$ rm -rf javadoc

Verify thet you have two subdirectories named 'org' and 'com'.
Copy the attached makefile into the xml dir.
Edit the location of the gcj and gcjgc libraries (first line
in the makefile).

$ make classfiles
$ make prepare
$ make
$ make apps
(Here you see the only error message:
com/jclark/xml/apps/Doctype.java:16: sorry, not implemented: : `anonymous array' JDK1.1(TM) feature
)
$ cd com/jclark/xml/apps
$ ./Time file.xml

or

$ ./Normalize file.xml 

Enjoy,

Jörg

Here's the makefile:

LDFLAGS=-L/home/joerg/libgcj/lib

SAX=org/xml/sax
SAX_HELPERS=$(SAX)/helpers
XML=com/jclark/xml
XML_UTIL=com/jclark/util
XML_APPS=$(XML)/apps
XML_TOK=$(XML)/tok
XML_SAX=$(XML)/sax
XML_OUTPUT=$(XML)/output
XML_PARSE=$(XML)/parse
XML_PARSE_IO=$(XML_PARSE)/io
XML_PARSE_BASE=$(XML_PARSE)/base


OBJS=\
$(SAX)/AttributeList.o \
$(SAX)/DTDHandler.o \
$(SAX)/DocumentHandler.o \
$(SAX)/EntityResolver.o \
$(SAX)/ErrorHandler.o \
$(SAX)/HandlerBase.o \
$(SAX)/InputSource.o \
$(SAX)/Locator.o \
$(SAX)/Parser.o \
$(SAX)/SAXException.o \
$(SAX)/SAXParseException.o \
$(SAX_HELPERS)/AttributeListImpl.o \
$(SAX_HELPERS)/LocatorImpl.o \
$(SAX_HELPERS)/ParserFactory.o \
$(XML)/Version.o \
$(XML_UTIL)/Hashtable.o \
$(XML_UTIL)/Hashtable_Enumerator.o \
$(XML_TOK)/ASCIIEncoding.o \
$(XML_TOK)/Buffer.o \
$(XML_TOK)/ContentToken.o \
$(XML_TOK)/EmptyTokenException.o \
$(XML_TOK)/Encoding.o \
$(XML_TOK)/EndOfPrologException.o \
$(XML_TOK)/ExtensibleTokenException.o \
$(XML_TOK)/ISO8859_1Encoding.o \
$(XML_TOK)/InternalEncoding.o \
$(XML_TOK)/InvalidTokenException.o \
$(XML_TOK)/PartialCharException.o \
$(XML_TOK)/PartialTokenException.o \
$(XML_TOK)/Position.o \
$(XML_TOK)/PrologParser.o \
$(XML_TOK)/PrologSyntaxException.o \
$(XML_TOK)/SingleByteEncoding.o \
$(XML_TOK)/StringConversionCache_Bucket.o \
$(XML_TOK)/StringConversionCache.o \
$(XML_TOK)/TextDecl.o \
$(XML_TOK)/Token.o \
$(XML_TOK)/TokenException.o \
$(XML_TOK)/UTF16BigEndianEncoding.o \
$(XML_TOK)/UTF16LittleEndianEncoding.o \
$(XML_TOK)/UTF8Encoding.o \
$(XML_TOK)/XmlDecl.o \
$(XML_OUTPUT)/SyncXMLWriter.o \
$(XML_OUTPUT)/UTF8XMLWriter.o \
$(XML_OUTPUT)/UTF8XMLWriter_ReplacementTextOutputStream.o \
$(XML_OUTPUT)/XMLWriter.o \
$(XML_SAX)/CommentDriver_1.o \
$(XML_SAX)/CommentDriver.o \
$(XML_SAX)/Driver.o \
$(XML_SAX)/Locator.o \
$(XML_SAX)/ReaderInputStream.o \
$(XML_SAX)/WrapperException.o \
$(XML_PARSE_IO)/Application.o \
$(XML_PARSE_IO)/ApplicationImpl.o \
$(XML_PARSE_IO)/Parser.o \
$(XML_PARSE_IO)/ParserImpl.o \
$(XML_PARSE_BASE)/Application.o \
$(XML_PARSE_BASE)/ApplicationImpl.o \
$(XML_PARSE_BASE)/Parser.o \
$(XML_PARSE_BASE)/ParserImpl.o \
$(XML_PARSE)/ApplicationException.o \
$(XML_PARSE)/AttributeDefinition.o \
$(XML_PARSE)/CharacterDataEvent.o \
$(XML_PARSE)/CommentEvent.o \
$(XML_PARSE)/DTD.o \
$(XML_PARSE)/DocumentParser.o \
$(XML_PARSE)/ElementType.o \
$(XML_PARSE)/EndCdataSectionEvent.o \
$(XML_PARSE)/EndDocumentTypeDeclarationEvent.o \
$(XML_PARSE)/EndElementEvent.o \
$(XML_PARSE)/EndEntityReferenceEvent.o \
$(XML_PARSE)/EndPrologEvent.o \
$(XML_PARSE)/Entity.o \
$(XML_PARSE)/EntityManager.o \
$(XML_PARSE)/EntityManagerImpl.o \
$(XML_PARSE)/EntityParser.o \
$(XML_PARSE)/EntityParser_DTDImpl.o \
$(XML_PARSE)/EntityParser_DeclState.o \
$(XML_PARSE)/EntityParser_ElementTypeImpl.o \
$(XML_PARSE)/EntityParser_ElementTypeImpl_Attribute.o \
$(XML_PARSE)/EntityParser_EntityImpl.o \
$(XML_PARSE)/EntityParser_StartExternalSubsetEvent.o \
$(XML_PARSE)/LocatedEvent.o \
$(XML_PARSE)/MarkupDeclarationEvent.o \
$(XML_PARSE)/MessageId.o \
$(XML_PARSE)/Messages.o \
$(XML_PARSE)/NotWellFormedException.o \
$(XML_PARSE)/OpenEntity.o \
$(XML_PARSE)/ParseLocation.o \
$(XML_PARSE)/ParserBase.o \
$(XML_PARSE)/ProcessingInstructionEvent.o \
$(XML_PARSE)/StartCdataSectionEvent.o \
$(XML_PARSE)/StartDocumentTypeDeclarationEvent.o \
$(XML_PARSE)/StartElementEvent.o \
$(XML_PARSE)/StartEntityReferenceEvent.o 



all: $(OBJS)

apps: 
	gcj --main=com.jclark.xml.apps.Time $(LDFLAGS) -o $(XML_APPS)/Time $(OBJS) $(XML_APPS)/Time.java
	gcj --main=com.jclark.xml.apps.Normalize $(LDFLAGS) -o $(XML_APPS)/Normalize $(OBJS) $(XML_APPS)/Normalize.java
	gcj --main=com.jclark.xml.apps.Doctype $(LDFLAGS) -o $(XML_APPS)/Doctype $(OBJS) $(XML_APPS)/Doctype.java


$(SAX)/%.o: $(SAX)/%.class
	gcj -c -o $@ $<

$(SAXHELPERS)/%.o: $(SAXHELPERS)/%.class
	gcj -c -o $@ $<

$(XML_UTIL)/%.o: $(XML_UTIL)/%.class 
	gcj -c -o $@ $<

$(XML)/%.o: $(XML)/%.class 
	gcj -c -o $@ $<


$(XML_TOK)/%.o: $(XML_TOK)/%.class 
	gcj -c -o $@ $<

$(XML_SAX)/%.o: $(XML_SAX)/%.class 
	gcj -c -o $@ $<


$(XML_PARSE_IO)/%.o: $(XML_PARSE_IO)/%.class 
	gcj -c -o $@ $<


$(XML_OUTPUT)/%.o: $(XML_OUTPUT)/%.class 
	gcj -c -o $@ $<


prepare:
	cp '$(XML_UTIL)/Hashtable$$Enumerator.class' $(XML_UTIL)/Hashtable_Enumerator.class
	cp '$(XML_PARSE)/EntityParser$$EntityImpl.class' $(XML_PARSE)/EntityParser_EntityImpl.class
	cp '$(XML_PARSE)/EntityParser$$ElementTypeImpl.class' $(XML_PARSE)/EntityParser_ElementTypeImpl.class
	cp '$(XML_PARSE)/EntityParser$$ElementTypeImpl$$Attribute.class' $(XML_PARSE)/EntityParser_ElementTypeImpl_Attribute.class
	cp '$(XML_PARSE)/EntityParser$$DTDImpl.class' $(XML_PARSE)/EntityParser_DTDImpl.class
	cp '$(XML_PARSE)/EntityParser$$StartExternalSubsetEvent.class' $(XML_PARSE)/EntityParser_StartExternalSubsetEvent.class
	cp '$(XML_PARSE)/EntityParser$$DeclState.class' $(XML_PARSE)/EntityParser_DeclState.class
	cp '$(XML_OUTPUT)/UTF8XMLWriter$$ReplacementTextOutputStream.class' $(XML_OUTPUT)/UTF8XMLWriter_ReplacementTextOutputStream.class
	cp '$(XML_TOK)/StringConversionCache$$Bucket.class' $(XML_TOK)/StringConversionCache_Bucket.class
	cp '$(XML_SAX)/CommentDriver$$1.class' $(XML_SAX)/CommentDriver_1.class

clean:
	rm -f $(OBJS)

classfiles:
	javac -classpath . com/jclark/util/Hashtable.java\
 com/jclark/xml/sax/*.java\
 com/jclark/xml/*.java\
 com/jclark/xml/apps/*.java\
 com/jclark/xml/parse/base/*.java\
 com/jclark/xml/parse/io/*.java\
 com/jclark/xml/parse/*.java\
 com/jclark/xml/tok/*.java\
 com/jclark/xml/output/*.java

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]