You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Sebastien Diot <s....@eurodata.de> on 2002/04/19 11:48:47 UTC

Request for comments: XML format for representing dependencies

Hallo!

In our projects, we have problems keeping all dependencies in sync, so I 
thought we could use a special XML format to represent dependencies and 
generate (with XSLT) program-specific dependency information from that 
central file. Main avantages are that everything is centrally kept and that 
we are then independent from a specific IDE and build process.

We need to represent dependencies for:

* make/ant target dependencies  (we haven't moved to Ant yet, but I'm 
working on it...  :)
* javac/jikes classpath
* <project>.jpx  (JBuilder project files).
* <project>.library  (JBuilder library files).
* <project>.mf  (Manifest files).

Here is my first thought on the subject ; any comments welcome :

<!DOCTYPE dependencies [
	<!-- A Jar file constituting a Library -->
	<!ELEMENT jar EMPTY>
	<!ATTLIST jar path CDATA 'lib'>
	<!ATTLIST jar file NMTOKEN #REQUIRED>
	<!-- A Library -->
	<!ELEMENT library jar+>
	<!ATTLIST library name ID #REQUIRED>
	<!-- The Jar file for a Project (defaults to ./"Project name".jar) -->
	<!ELEMENT projectJar EMPTY>
	<!ATTLIST projectJar path CDATA '.'>
	<!ATTLIST projectJar file NMTOKEN #REQUIRED>
	<!-- A direct Project dependency -->
	<!ELEMENT direct EMPTY>
	<!ATTLIST direct name IDREF #REQUIRED>
	<!-- A runtime Project dependency -->
	<!ELEMENT runtime EMPTY>
	<!ATTLIST runtime name IDREF #REQUIRED>
	<!-- A compile-time indirect Project dependency -->
	<!ELEMENT compiletime EMPTY>
	<!ATTLIST compiletime name IDREF #REQUIRED>
	<!-- A Project -->
	<!ELEMENT project (projectJar?,direct*,compiletime*,runtime*)>
	<!ATTLIST project name ID #REQUIRED>
	<!-- The Root Element (specifies with which JDK to compile).-->
	<!ELEMENT dependencies (library*, project*)>
	<!ATTLIST dependencies jdk CDATA #REQUIRED>
]>

<dependencies jdk="java 1.3.1-b24">
	<library name="Log4J">
		<jar file="log4j.jar"/>
		<jar file="log4j-core.jar"/>
	</library>
	<library name="JVI 6.0">
		<jar file="jvi6.0.2-jdk1.2.jar"/>
		<jar file="jta-spec1_0_1.jar"/>
	</library>
	<library name="JAXP">
		<jar file="jaxp.jar"/>
		<jar file="crimson.jar"/>
	</library>
	<library name="PrintServer">
		<jar file="BS2PrintServer.jar"/>
	</library>
	<project name="eurodata">
		<direct name="PrintServer"/>
		<direct name="Log4J"/>
		<direct name="JVI 6.0"/>
		<direct name="JAXP"/>
	</project>
</dependencies>

MfG / Regards,
Sebastien Diot

eurodata GmbH & Co. KG
Gro?blittersdorfer Str. 257-259
66119 Saarbrucken

Tel: 0681 8808 796
Fax: 0681 8808 300



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>