From: Markus S. <mar...@xd...> - 2007-11-29 21:13:42
|
Hi all, With the extensive help of Mathew Bosher and his excellent aParse library ( http://www.parse2.com/), I implemented a first version of a new XRI 3.0Syntax parser. I already checked it in to the OpenXRI SVN. I did not make any changes to the existing packages in OpenXRI Syntax. Wil, I think you suggested that I separate everything into interfaces and implementation classes. I tried to do that, but you may want to take a look at it and tell me if anything should be renamed / reorganized / etc. to fit into the OpenXRI architecture. Specifically, I created the following Java packages: org.openxri.xri3 - This contains interfaces, e.g. XRI, XRISubSegment, XRIAuthority, etc org.openxri.xri3.impl - This contains implementation classes, e.g. XRI3, XRI3SubSegment, XRI3Authority org.openxri.xri3.impl.parser - This contains classes generated by Mathew's aParse. They are used internally for parsing strings according to the XRI 3.0 ABNF. org.openxri.xri3.impl.tutorial - This contains three examples of how to use everything. Many of the new interfaces and classes have the same names as their Syntax 2.0 counterparts in the "org.openxri" package. Not sure if that's a problem or not. I also implemented and checked in lots of test cases, including everything listed on this page: http://dev.inames.net/wiki/OpenXRI:Syntax_3.<http://dev.inames.net/wiki/OpenXRI:Syntax_3> The "Requirements" section has been renamed to "Features" :) I think the library is about 90% complete. It can do everything I need for XDI stuff, and I think it can do what an XRI resolver will need. Maybe other requirements will come up after a while. Here's a very simple example of how it can be used: XRI xri = new XRI3("@free*earth*moon/testpath"); XRIAuthority xriAuthority = xri.getAuthority(); for (int i=0; i< xriAuthority.getNumSubSegments(); i++) { XRISubSegment subSegment = xriAuthority.getSubSegment(i); System.out.println("Subsegment #" + i + ": " + subSegment.toString()); } Markus |