You can subscribe to this list here.
2003 |
Jan
|
Feb
(21) |
Mar
(9) |
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
(3) |
Sep
(3) |
Oct
(8) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
|
Nov
|
Dec
|
From: Danny A. <dan...@vi...> - 2003-03-07 11:39:39
|
[snip - all fair enough!] > Actually, this has something to do with why we chose EXML, too: because > the existing user base with Xerces was a known quantity. If we used Xerces > (or, if you like, JAXP - they're not the same, as is par for Sun's > course), we'd be binding in a version dependency. Thus, people who were > using Xerces would then be trapped into using *our* version of Xerces... > and vice versa. (True story: I know of a project that has to have TWO > versions of xerces in the same project. Lovely concept.) EXML's smaller > userbase means that deployers can drop it in without expecting the rest of > their xerces-dependent code to have any changes whatsoever. Heh, I must admit this angle hadn't occurred to me - I love it. I've been caught out by version dependency and associated problems often enough, worst of all was when I was using Crimson (in Batik) alongside Xerces (in Jena). Usually didn't have a clue which version of a class was being used. I actually think I've got 3 different versions of Xerces around as we speak (one in my dev tree, I think there's one tucked into a local Tomcat install, and another in Jena). So your arguments above have a sympathetic ear here - in fact if you've any used cars you want to sell, now would be a very good time ;-) There is another consideration, and I'd very much like to hear your thoughts - J2SE 1.4 with its XML support. At which point do you think it would make sense in a project like this to move the focus to this version? Cheers, Danny. |
From: Joseph O. <jo...@en...> - 2003-03-07 11:09:33
|
On Fri, 7 Mar 2003, Danny Ayers wrote: > > > "Using JAXP to both read and write an XML document" > > Yes, but it's also not as pretty or as elegant as EXML's. > Prettiness and elegance would be relatively low on my priority list, but > that's just a personal thing. Well, yeah... agreed, but in this case, you're looking at three lines of code versus twenty. (Slight exaggeration.) I'm a lot less interested in doing it via JAXP when JAXP gets in the way - esp. when I have a way of doing it that doesn't get in the way. As I've said before, I'd love to have someone volunteer to yank the EXML out and replace it with JAXP. I don't want the dependency either, really. It just turned out to be such a nice API to use that going from good to bad just doesn't feel right to me, and I use EXML a good bit, so the impact to ME is light. I was scratching an itch, after all, and going to JAXP is scratching an itch I don't actually have. > > Oh, no. Actually, the namespacing in JAXP is *predeterminate* where > > namespacing in XML is not. Consider RDF. Here's the "normal" declaration: [snip!] > > JAXP does not support this. > > The namespace prefix is really just an artifact of the serialization, so > it'll depend on what's being used there. I'm pretty sure that whether an > implementation extension (like those in Xerces) or a blank transform is > used, this kind of namespace support will be available. Yet that aspect is compensating for external serialization, not internal. As it's an external factor, you'd still be expected to handle it. > In JAXP, you have to search for the actual > > name of the element, including namespace, so you have to search for > > "rdf:RDF" and not "namespace locally referred to as rdf" and "RDF", the > > way EXML does it. The second decl should work in EXML. It has no chance in > > JAXP. > > The element is disambiguated by the combination of the namespace and the > local name, so these will need specifying somewhere whatever you do. I > honestly can't see much advantage in searching for one string ('rdf') over > another ('http://www.w3.org/1999/02/22-rdf-syntax-ns#') - it'll normally be > held in a variable either way. If you really wanted to you could write a > couple of convenience methods. In EXML, you declare a namespace variable (I use the misleading "rdf" for that.) Then you would look for a tag called rdf, "RDF". It's a convenience thing, indeed. > The reason I have chosen JAXP (well, Xerces usually) over alternatives in > the past is because of the existing user base, and for a lot of people it's > a known quantity. I personally think this outweighs elegance. It took me > half an hour to even find a page about EXML - the Eiffel parser is better > known. > Anyhow, there's my couple of centissimi. Actually, this has something to do with why we chose EXML, too: because the existing user base with Xerces was a known quantity. If we used Xerces (or, if you like, JAXP - they're not the same, as is par for Sun's course), we'd be binding in a version dependency. Thus, people who were using Xerces would then be trapped into using *our* version of Xerces... and vice versa. (True story: I know of a project that has to have TWO versions of xerces in the same project. Lovely concept.) EXML's smaller userbase means that deployers can drop it in without expecting the rest of their xerces-dependent code to have any changes whatsoever. --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Danny A. <dan...@vi...> - 2003-03-07 01:09:34
|
> > "Using JAXP to both read and write an XML document" > > Yes, but it's also not as pretty or as elegant as EXML's. Prettiness and elegance would be relatively low on my priority list, but that's just a personal thing. > Oh, no. Actually, the namespacing in JAXP is *predeterminate* where > namespacing in XML is not. Consider RDF. Here's the "normal" declaration: > > <rdf:RDF > xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > xmlns:dc="http://purl.org/dc/elements/1.1/" > xmlns="http://purl.org/rss/1.0/" > > ... > > Now, consider this EQUALLY VALID declaration: > > <foo:RDF > xmlns:foo="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > xmlns:dc="http://purl.org/dc/elements/1.1/" > xmlns="http://purl.org/rss/1.0/" > > > > JAXP does not support this. The namespace prefix is really just an artifact of the serialization, so it'll depend on what's being used there. I'm pretty sure that whether an implementation extension (like those in Xerces) or a blank transform is used, this kind of namespace support will be available. In JAXP, you have to search for the actual > name of the element, including namespace, so you have to search for > "rdf:RDF" and not "namespace locally referred to as rdf" and "RDF", the > way EXML does it. The second decl should work in EXML. It has no chance in > JAXP. The element is disambiguated by the combination of the namespace and the local name, so these will need specifying somewhere whatever you do. I honestly can't see much advantage in searching for one string ('rdf') over another ('http://www.w3.org/1999/02/22-rdf-syntax-ns#') - it'll normally be held in a variable either way. If you really wanted to you could write a couple of convenience methods. The reason I have chosen JAXP (well, Xerces usually) over alternatives in the past is because of the existing user base, and for a lot of people it's a known quantity. I personally think this outweighs elegance. It took me half an hour to even find a page about EXML - the Eiffel parser is better known. Anyhow, there's my couple of centissimi. Cheers, Danny. |
From: Joseph O. <jo...@en...> - 2003-03-06 18:03:53
|
On Thu, 6 Mar 2003, Danny Ayers wrote: > I'm not familiar with EXML (or jdom for that matter), though it's not hard > to imagine how it would be able to make things easier than JAXP. However, I > don't think JAXP's all *that* bad - specifically : > > > Porting the XML to JAXP has been considered. However, JAXP is very > > difficult to work with, compared to EXML; EXML handles generation of the > > XML for you from a DOM, for example, where JAXP requires manual > > generation. > > API implementations (such as Xerces) usually have fairly simple > serialization available, though outside of JAXP proper. It's also possible > to serialize using javax.xml.transform, see : > http://www.ibiblio.org/xml/books/xmljava/chapters/ch09s09.html > "Using JAXP to both read and write an XML document" Yes, but it's also not as pretty or as elegant as EXML's. Furthermore: > > Also, JAXP handles namespacing very poorly. > > If I remember correctly, the first release of JAXP, maybe a couple of years > ago, didn't have *any* support for namespaces, but as far as I know the > current version & implementations handle namespaces as well as one would > expect. > Oh, no. Actually, the namespacing in JAXP is *predeterminate* where namespacing in XML is not. Consider RDF. Here's the "normal" declaration: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/" > ... Now, consider this EQUALLY VALID declaration: <foo:RDF xmlns:foo="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/" > JAXP does not support this. In JAXP, you have to search for the actual name of the element, including namespace, so you have to search for "rdf:RDF" and not "namespace locally referred to as rdf" and "RDF", the way EXML does it. The second decl should work in EXML. It has no chance in JAXP. --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Danny A. <dan...@vi...> - 2003-03-06 17:18:20
|
I'm not familiar with EXML (or jdom for that matter), though it's not hard to imagine how it would be able to make things easier than JAXP. However, I don't think JAXP's all *that* bad - specifically : > Porting the XML to JAXP has been considered. However, JAXP is very > difficult to work with, compared to EXML; EXML handles generation of the > XML for you from a DOM, for example, where JAXP requires manual > generation. API implementations (such as Xerces) usually have fairly simple serialization available, though outside of JAXP proper. It's also possible to serialize using javax.xml.transform, see : http://www.ibiblio.org/xml/books/xmljava/chapters/ch09s09.html "Using JAXP to both read and write an XML document" > Also, JAXP handles namespacing very poorly. If I remember correctly, the first release of JAXP, maybe a couple of years ago, didn't have *any* support for namespaces, but as far as I know the current version & implementations handle namespaces as well as one would expect. Cheers, Danny. |
From: Jason B. <jas...@sy...> - 2003-03-06 13:36:32
|
Hi Kate When Joe and I were discussing putting RSSLibJ together he pinned me to the wall and said "no dependencies!" :) My concern was that anyone using JDK 1.3 was not going to be able to use RSSLibJ. So our only consession was to use EXML to create the xml for us (using SAX or any part of JAXP just seemed like a bad idea). From what I can see the basic license for EXML (http://www.themindelectric.com/exml/license-EXML.html) doesn't look like they'll come looking for you. We're not using EXML+. Joe will no doubt have a more level headed answer than I will regarding the license issue. Personally I don't see anything to worry about, unless you are building an IDE or another xml parser. Kind regards Jase Bell | | | ----- Original Message ----- | From: "Kate Rhodes" <kr...@vi...> | To: <rss...@li...> | Sent: Thursday, March 06, 2003 1:24 PM | Subject: [Rsslibj-developer] licenses | | | | I read the FAQ's reasoning behind using EXML but I was wondering if any | | consideration was being made towards using something with a less | restrictive | | license. | | | | I finally got around to using RSSLibJ and it was nice, but the licensing | on | | EXML is not something I'm really comfortable with and I'd have to recode | | RSSLibJ (which I don't want to do). Also, what's the license on RSSLibJ I | | can't seem to find it anywhere. It is just public domain? | | | | -Kate | | | | | | | | ------------------------------------------------------- | | This SF.net email is sponsored by: Etnus, makers of TotalView, The | debugger | | for complex code. Debugging C/C++ programs can leave you feeling lost and | | disoriented. TotalView can help you find your way. Available on major UNIX | | and Linux platforms. Try it free. www.etnus.com | | _______________________________________________ | | Rsslibj-developer mailing list | | Rss...@li... | | https://lists.sourceforge.net/lists/listinfo/rsslibj-developer | | | | | |
From: Joseph O. <jo...@en...> - 2003-03-06 13:30:16
|
Hello. I've been working under the assumption that RSSLibJ was BSD- or Artistically-licensed. Formally, no decision has been made. As far as EXML is concerned, the only real restriction is that it can't be used to write an XML parser. I'm still waiting to see if it can be distributed on sourceforge, from TME. Porting the XML to JAXP has been considered. However, JAXP is very difficult to work with, compared to EXML; EXML handles generation of the XML for you from a DOM, for example, where JAXP requires manual generation. Also, JAXP handles namespacing very poorly. As a result, getting the equivalent functionality is no small amount of work. If you'd like to invest it, please do; I wouldn't have an objection to removing the EXML dependency. I just don't care to remove it myself, since I'm comfortable with EXML and it does what I need it to VERY well, moreso than the W3C's DOM API by leaps and bounds, in my opinion. On Thu, 6 Mar 2003, Kate Rhodes wrote: > I read the FAQ's reasoning behind using EXML but I was wondering if any > consideration was being made towards using something with a less restrictive > license. > > I finally got around to using RSSLibJ and it was nice, but the licensing on > EXML is not something I'm really comfortable with and I'd have to recode > RSSLibJ (which I don't want to do). Also, what's the license on RSSLibJ I > can't seem to find it anywhere. It is just public domain? > > -Kate > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger > for complex code. Debugging C/C++ programs can leave you feeling lost and > disoriented. TotalView can help you find your way. Available on major UNIX > and Linux platforms. Try it free. www.etnus.com > _______________________________________________ > Rsslibj-developer mailing list > Rss...@li... > https://lists.sourceforge.net/lists/listinfo/rsslibj-developer > --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Kate R. <kr...@vi...> - 2003-03-06 13:24:35
|
I read the FAQ's reasoning behind using EXML but I was wondering if any consideration was being made towards using something with a less restrictive license. I finally got around to using RSSLibJ and it was nice, but the licensing on EXML is not something I'm really comfortable with and I'd have to recode RSSLibJ (which I don't want to do). Also, what's the license on RSSLibJ I can't seem to find it anywhere. It is just public domain? -Kate |
From: Joseph O. <jo...@en...> - 2003-02-25 14:35:52
|
Yeah, I saw that - and I'm applying the fix now. (I was coding it as your email came in, oddly enough.) Are there any other extant issues? I'd like to do a call for votes on a 1.0 release soon soon soon, like today today today if everyone agrees. On Tue, 25 Feb 2003, Joseph Shelby wrote: > Joseph Ottinger wrote: > > > > Argh, the problem lives on. I'll examine it more closely. Joe, can you > > show me some code that duplicates the issue? I'm hoping to have a new > > release today and I'd like it to be correct. > > Well, part of it was my issue -- I hadn't set "about" in my generation > of rss, relying just on the link tags to do what I needed to do. I guess > when writing rss100, either 1) an exception be thrown, or 2) the link value > be used, if dealing with an Item that's missing its about property. > > However, it is very definitely "li" and not "item" that goes inside > the rdf:Seq tag, so my fix is partially correct. > > > On Tue, 25 Feb 2003, Joseph Shelby wrote: > > > > > On Tue, 25 Feb 2003, Joseph Ottinger wrote: > > > > > > actually, 2 things are fixed: > > > what i was getting was <item/> > > > what i should get is <li rdf:resource="uri"/> > > > > > > getAbout() seems to be empty. even when i used it first with the > > > li tag, i got <li rdf:resource=""/> or <li/> (when EXML nicely ignored > > > an attribute with a null value). > > > > > > again, if the about property isn't set by something, its empty and that's > > > causing problems. My reading of the O'Reilly article is that the uri needs > > > to be the same as the one in the Item tag, so why not use getLink in both?. > > > > > > The reason is that in RDF, the order of elements technically doesn't matter, > > > unless the elements are wrapped in an rdf:Seq container. Even if RSS 1.0 > > > were to specify that that the Item tags are in the right order, to be RDF > > > compliant (which I need to work with existing RDF tools here @ my company), > > > the Seq is all that matters in the order of things. > > > > > > Joe > > > > > > > Joe, the only issue with applying this patch is that I'm not sure what > > > > it's solving. You're adding the item to the sequence, and the *main* > > > > difference I see is that you're using the item LINK instead of the item > > > > ABOUT data... and those should be the same reference. Am I missing > > > > something? > > > > > > > > On Mon, 24 Feb 2003, Joseph Shelby wrote: > > > > > > > > > private void addItemsRef(Element channel, List is) { > > > > > if(is!=null && is.size()>0) { > > > > > Element items=channel.addElement("items"); > > > > > Element seq=items.addElement("rdf", "Seq"); > > > > > Iterator iter=is.iterator(); > > > > > while(iter.hasNext()) { > > > > > Item item=(Item)iter.next(); > > > > > // addItem(seq, item, "resource"); > > > > > Element li = seq.addElement("li"); > > > > > li.setAttribute("rdf", "resource", item.getLink()); > > > > > } > > > > > } > > > > > } > > > > > > > > > > that now follows the rdf:Seq->li syntax described by O'Reilly's > > > > > page > > > > > > > > > > http://www.oreillynet.com/pub/a/network/2000/08/25/magazine/rss_tut.html?page=3 > > --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Joseph O. <jo...@en...> - 2003-02-25 13:21:02
|
Argh, the problem lives on. I'll examine it more closely. Joe, can you show me some code that duplicates the issue? I'm hoping to have a new release today and I'd like it to be correct. On Tue, 25 Feb 2003, Joseph Shelby wrote: > On Tue, 25 Feb 2003, Joseph Ottinger wrote: > > actually, 2 things are fixed: > what i was getting was <item/> > what i should get is <li rdf:resource="uri"/> > > getAbout() seems to be empty. even when i used it first with the > li tag, i got <li rdf:resource=""/> or <li/> (when EXML nicely ignored > an attribute with a null value). > > again, if the about property isn't set by something, its empty and that's > causing problems. My reading of the O'Reilly article is that the uri needs > to be the same as the one in the Item tag, so why not use getLink in both?. > > The reason is that in RDF, the order of elements technically doesn't matter, > unless the elements are wrapped in an rdf:Seq container. Even if RSS 1.0 > were to specify that that the Item tags are in the right order, to be RDF > compliant (which I need to work with existing RDF tools here @ my company), > the Seq is all that matters in the order of things. > > Joe > > > Joe, the only issue with applying this patch is that I'm not sure what > > it's solving. You're adding the item to the sequence, and the *main* > > difference I see is that you're using the item LINK instead of the item > > ABOUT data... and those should be the same reference. Am I missing > > something? > > > > On Mon, 24 Feb 2003, Joseph Shelby wrote: > > > > > private void addItemsRef(Element channel, List is) { > > > if(is!=null && is.size()>0) { > > > Element items=channel.addElement("items"); > > > Element seq=items.addElement("rdf", "Seq"); > > > Iterator iter=is.iterator(); > > > while(iter.hasNext()) { > > > Item item=(Item)iter.next(); > > > // addItem(seq, item, "resource"); > > > Element li = seq.addElement("li"); > > > li.setAttribute("rdf", "resource", item.getLink()); > > > } > > > } > > > } > > > > > > that now follows the rdf:Seq->li syntax described by O'Reilly's > > > page > > > > > > http://www.oreillynet.com/pub/a/network/2000/08/25/magazine/rss_tut.html?page=3 > > > > > > Joe > > > > > > > --------------------------------------------------------- > > Joseph B. Ottinger jo...@en... > > http://enigmastation.com IT Consultant > > > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > Rsslibj-developer mailing list > > Rss...@li... > > https://lists.sourceforge.net/lists/listinfo/rsslibj-developer > > > > --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Joseph O. <jo...@en...> - 2003-02-25 13:19:30
|
Beauty! Then the code as it stands right now is correct. On Tue, 25 Feb 2003, Danny Ayers wrote: > > > Now, the only remaining question is: "Should the <item> have its rdf:about > > value matching the sequence's rdf:resource?" Right now, it does. I'm not > > sure if the spec mandates it. > > It does: > > 5.3.5 <items> > An RDF table of contents, associating the document's items [5.5] with this > particular RSS channel. Each item's rdf:resource {item_uri} must be the same > as the associated item element's rdf:about {item_uri}. > > An RDF Seq (sequence) is used to contain all the items rather than an RDF > Bag to denote item order for rendering and reconstruction. > > Note that items appearing in the document but not as members of the channel > level items sequence are likely to be discarded by RDF parsers. > > Syntax: <items><rdf:Seq><rdf:li resource="{item_uri}" /> ... > </rdf:Seq></items> > Requirement: Required > > http://web.resource.org/rss/1.0/spec#s5.3.5 > --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Joseph S. <acr...@io...> - 2003-02-25 12:57:16
|
On Tue, 25 Feb 2003, Joseph Ottinger wrote: actually, 2 things are fixed: what i was getting was <item/> what i should get is <li rdf:resource="uri"/> getAbout() seems to be empty. even when i used it first with the li tag, i got <li rdf:resource=""/> or <li/> (when EXML nicely ignored an attribute with a null value). again, if the about property isn't set by something, its empty and that's causing problems. My reading of the O'Reilly article is that the uri needs to be the same as the one in the Item tag, so why not use getLink in both?. The reason is that in RDF, the order of elements technically doesn't matter, unless the elements are wrapped in an rdf:Seq container. Even if RSS 1.0 were to specify that that the Item tags are in the right order, to be RDF compliant (which I need to work with existing RDF tools here @ my company), the Seq is all that matters in the order of things. Joe > Joe, the only issue with applying this patch is that I'm not sure what > it's solving. You're adding the item to the sequence, and the *main* > difference I see is that you're using the item LINK instead of the item > ABOUT data... and those should be the same reference. Am I missing > something? > > On Mon, 24 Feb 2003, Joseph Shelby wrote: > > > private void addItemsRef(Element channel, List is) { > > if(is!=null && is.size()>0) { > > Element items=channel.addElement("items"); > > Element seq=items.addElement("rdf", "Seq"); > > Iterator iter=is.iterator(); > > while(iter.hasNext()) { > > Item item=(Item)iter.next(); > > // addItem(seq, item, "resource"); > > Element li = seq.addElement("li"); > > li.setAttribute("rdf", "resource", item.getLink()); > > } > > } > > } > > > > that now follows the rdf:Seq->li syntax described by O'Reilly's > > page > > > > http://www.oreillynet.com/pub/a/network/2000/08/25/magazine/rss_tut.html?page=3 > > > > Joe > > > > --------------------------------------------------------- > Joseph B. Ottinger jo...@en... > http://enigmastation.com IT Consultant > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Rsslibj-developer mailing list > Rss...@li... > https://lists.sourceforge.net/lists/listinfo/rsslibj-developer > -- ------------------------------------------------------------------- Joseph Shelby mailto:acr...@io... http://www.celticdistrict.com/ http://www.io.com/~acroyear ------------------------------------------------------------------- |
From: Danny A. <dan...@vi...> - 2003-02-25 12:53:48
|
> Now, the only remaining question is: "Should the <item> have its rdf:about > value matching the sequence's rdf:resource?" Right now, it does. I'm not > sure if the spec mandates it. It does: 5.3.5 <items> An RDF table of contents, associating the document's items [5.5] with this particular RSS channel. Each item's rdf:resource {item_uri} must be the same as the associated item element's rdf:about {item_uri}. An RDF Seq (sequence) is used to contain all the items rather than an RDF Bag to denote item order for rendering and reconstruction. Note that items appearing in the document but not as members of the channel level items sequence are likely to be discarded by RDF parsers. Syntax: <items><rdf:Seq><rdf:li resource="{item_uri}" /> ... </rdf:Seq></items> Requirement: Required http://web.resource.org/rss/1.0/spec#s5.3.5 |
From: Joseph O. <jo...@en...> - 2003-02-25 11:48:47
|
Argh, belay that: I won't put any change in. The writer builds the sequence using the 'about' - and the item is stored with <link>, as the spec shows. Here's the relevant code to build handle the items (while building the channel): if(items!=null && items.size()>0) { addItemsRef(channel, items); Iterator iter=items.iterator(); while(iter.hasNext()) { Item item=(Item)iter.next(); Element itemElt=addItem(root, item, "about"); addElement(itemElt, "title", item.getTitle(), true); addElement(itemElt, "link", item.getLink(), true); addElement(itemElt, "description", item.getDescription(), true); addDublinCore(itemElt, item); } } And here's the code for addItem() and addItemsRef(): protected Element addItem(Element root, Item item, String resource) { Element itemElt=null; if(item!=null) { itemElt=root.addElement("item"); addNSAttribute(itemElt, "rdf", resource, item.getAbout(), false); } return itemElt; } private void addItemsRef(Element channel, List is) { if(is!=null && is.size()>0) { Element items=channel.addElement("items"); Element seq=items.addElement("rdf", "Seq"); Iterator iter=is.iterator(); while(iter.hasNext()) { Item item=(Item)iter.next(); addItem(seq, item, "resource"); } } } Now, the only remaining question is: "Should the <item> have its rdf:about value matching the sequence's rdf:resource?" Right now, it does. I'm not sure if the spec mandates it. On Tue, 25 Feb 2003, Joseph Ottinger wrote: > Ahh, I see. I'll put the change in in a few hours or so. > > On Tue, 25 Feb 2003, Danny Ayers wrote: > > > > > > Joe, the only issue with applying this patch is that I'm not sure what > > > it's solving. You're adding the item to the sequence, and the *main* > > > difference I see is that you're using the item LINK instead of the item > > > ABOUT data... and those should be the same reference. Am I missing > > > something? > > > > The resource in the seq should the the same as the 'about', see : > > http://web.resource.org/rss/1.0/spec#s5.3.5 > > > > According to the spec : "{item_uri} should be identical to the value of the > > <link> sub-element of the <item> element, if possible.". So > > although in most circumstances the 'about' will be the same as the <link>, > > this isn't necessarily always the case (this was discussed a while ago on > > rss-dev). > > > > (Personally I'd prefer that the specs made the <link> element optional, so > > that self-contained items like many on blog posts were covered better, the > > thing being described being the 'about' resource, without reference to any > > external URL). > > > > Cheers, > > DAnny. > > > > > > > > --------------------------------------------------------- > Joseph B. Ottinger jo...@en... > http://enigmastation.com IT Consultant > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Rsslibj-developer mailing list > Rss...@li... > https://lists.sourceforge.net/lists/listinfo/rsslibj-developer > --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Joseph O. <jo...@en...> - 2003-02-25 11:42:18
|
Ahh, I see. I'll put the change in in a few hours or so. On Tue, 25 Feb 2003, Danny Ayers wrote: > > > Joe, the only issue with applying this patch is that I'm not sure what > > it's solving. You're adding the item to the sequence, and the *main* > > difference I see is that you're using the item LINK instead of the item > > ABOUT data... and those should be the same reference. Am I missing > > something? > > The resource in the seq should the the same as the 'about', see : > http://web.resource.org/rss/1.0/spec#s5.3.5 > > According to the spec : "{item_uri} should be identical to the value of the > <link> sub-element of the <item> element, if possible.". So > although in most circumstances the 'about' will be the same as the <link>, > this isn't necessarily always the case (this was discussed a while ago on > rss-dev). > > (Personally I'd prefer that the specs made the <link> element optional, so > that self-contained items like many on blog posts were covered better, the > thing being described being the 'about' resource, without reference to any > external URL). > > Cheers, > DAnny. > > > --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Danny A. <dan...@vi...> - 2003-02-25 10:14:19
|
> Joe, the only issue with applying this patch is that I'm not sure what > it's solving. You're adding the item to the sequence, and the *main* > difference I see is that you're using the item LINK instead of the item > ABOUT data... and those should be the same reference. Am I missing > something? The resource in the seq should the the same as the 'about', see : http://web.resource.org/rss/1.0/spec#s5.3.5 According to the spec : "{item_uri} should be identical to the value of the <link> sub-element of the <item> element, if possible.". So although in most circumstances the 'about' will be the same as the <link>, this isn't necessarily always the case (this was discussed a while ago on rss-dev). (Personally I'd prefer that the specs made the <link> element optional, so that self-contained items like many on blog posts were covered better, the thing being described being the 'about' resource, without reference to any external URL). Cheers, DAnny. |
From: Joseph O. <jo...@en...> - 2003-02-25 06:54:06
|
Joe, the only issue with applying this patch is that I'm not sure what it's solving. You're adding the item to the sequence, and the *main* difference I see is that you're using the item LINK instead of the item ABOUT data... and those should be the same reference. Am I missing something? On Mon, 24 Feb 2003, Joseph Shelby wrote: > private void addItemsRef(Element channel, List is) { > if(is!=null && is.size()>0) { > Element items=channel.addElement("items"); > Element seq=items.addElement("rdf", "Seq"); > Iterator iter=is.iterator(); > while(iter.hasNext()) { > Item item=(Item)iter.next(); > // addItem(seq, item, "resource"); > Element li = seq.addElement("li"); > li.setAttribute("rdf", "resource", item.getLink()); > } > } > } > > that now follows the rdf:Seq->li syntax described by O'Reilly's > page > > http://www.oreillynet.com/pub/a/network/2000/08/25/magazine/rss_tut.html?page=3 > > Joe > --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Joseph S. <acr...@io...> - 2003-02-24 23:46:45
|
private void addItemsRef(Element channel, List is) { if(is!=null && is.size()>0) { Element items=channel.addElement("items"); Element seq=items.addElement("rdf", "Seq"); Iterator iter=is.iterator(); while(iter.hasNext()) { Item item=(Item)iter.next(); // addItem(seq, item, "resource"); Element li = seq.addElement("li"); li.setAttribute("rdf", "resource", item.getLink()); } } } that now follows the rdf:Seq->li syntax described by O'Reilly's page http://www.oreillynet.com/pub/a/network/2000/08/25/magazine/rss_tut.html?page=3 Joe -- ---------------------------------------------------------------------- Joseph Shelby mailto:acr...@io... 45533 Stablemates Ct. http://www.io.com/~acroyear Sterling, VA 20164 (703) 404-0314 | 247-7868 Software Engineer, ISX Corporation, Arlington, VA "The people of England will permit anything...except cruelty to horses and a rise in the price of beer." -- Return of the Musketteers (1989) ---------------------------------------------------------------------- |
From: Danny A. <dan...@vi...> - 2003-02-21 12:16:29
|
Hi folks, I've just a started a new project related to rsslibj (it's actually an offshoot of an existing project, but I'm building from scratch). Essentially it will be an API rather like that of rsslibj but for RSS (and other RDF) reading and writing, designed primarily for the server-side and backed by the Jena RDF API. The main part (as far as most developers are concerned) will be a set of simple interfaces for RSS channels, items etc acting as a facade to Jena. I'm only just now checking out the rsslibj source, but looking at the example on the home page the rsslibj interfaces look very much like what I have in mind. With both projects being so new, for the moment I'd rather not reuse the rsslibj interfaces but make my own as compatible as possible, ideally so that a change of back end would only need a one-line change of import statement. This could be very beneficial to both projects, as front ends could be swapped between projects at will. I've only just set things up at sourceforge and need to refactor the source a bit before uploading, but hopefully that will happen in the next week. More info at http://dannyayers.com/ideagraph-blog/archives/cat_jemblog.html Cheers, Danny. --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.456 / Virus Database: 256 - Release Date: 18/02/2003 |
From: Joseph O. <jo...@en...> - 2003-02-14 17:46:40
|
Joe, the new version of RSSLibJ on sourceforge has both of the fixes in. BTW, I mentioned your comment on mark() to the EXML list, and Graham Glass' reply was: "good point - we could put the mark test directly into the constructor which takes a Reader. cheers, graham" BTW, I mentioned you as the one who pointed this out, so kudos will be throwin in your direction and not mine. :) On Thu, 13 Feb 2003, Joseph Shelby wrote: > Channel.getFeed yarfs if one didn't set an Image, using RDF/100 syntax. > > [java] java.lang.IllegalArgumentException: attribute rdf:resource must have data in image > [java] at com.rsslibj.writers.GenericRSSWriter.addNSAttribute(Unknown Source) > [java] at com.rsslibj.writers.defaults.rss100.addImageRef(Unknown Source) > [java] at com.rsslibj.writers.defaults.rss100.getFeed(Unknown Source) > [java] at com.rsslibj.elements.Channel.getFeed(Unknown Source) > > I was under the impression that images were optional. Channel has > "Image image = new Image()" which isn't quite right, since null > is a legit value; it should be the default. An uninitialized Image > causes problems with RDF. > > Unfortunately, there's no setImage(image/null) or removeImage() method. > > TextInput also should be null to start with, and have a clear or null > setting ability. > > Joe > --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Joseph O. <jo...@en...> - 2003-02-14 00:01:34
|
Two bugs! Thank you VERY MUCH - and I'll attack these tomorrow, to get them straightened out. On Thu, 13 Feb 2003, Joseph Shelby wrote: > Channel.getFeed yarfs if one didn't set an Image, using RDF/100 syntax. > > [java] java.lang.IllegalArgumentException: attribute rdf:resource must have data in image > [java] at com.rsslibj.writers.GenericRSSWriter.addNSAttribute(Unknown Source) > [java] at com.rsslibj.writers.defaults.rss100.addImageRef(Unknown Source) > [java] at com.rsslibj.writers.defaults.rss100.getFeed(Unknown Source) > [java] at com.rsslibj.elements.Channel.getFeed(Unknown Source) > > I was under the impression that images were optional. Channel has > "Image image = new Image()" which isn't quite right, since null > is a legit value; it should be the default. An uninitialized Image > causes problems with RDF. > > Unfortunately, there's no setImage(image/null) or removeImage() method. > > TextInput also should be null to start with, and have a clear or null > setting ability. > > Joe > --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Joseph S. <acr...@io...> - 2003-02-13 21:43:50
|
Channel.getFeed yarfs if one didn't set an Image, using RDF/100 syntax. [java] java.lang.IllegalArgumentException: attribute rdf:resource must have data in image [java] at com.rsslibj.writers.GenericRSSWriter.addNSAttribute(Unknown Source) [java] at com.rsslibj.writers.defaults.rss100.addImageRef(Unknown Source) [java] at com.rsslibj.writers.defaults.rss100.getFeed(Unknown Source) [java] at com.rsslibj.elements.Channel.getFeed(Unknown Source) I was under the impression that images were optional. Channel has "Image image = new Image()" which isn't quite right, since null is a legit value; it should be the default. An uninitialized Image causes problems with RDF. Unfortunately, there's no setImage(image/null) or removeImage() method. TextInput also should be null to start with, and have a clear or null setting ability. Joe -- ---------------------------------------------------------------------- Joseph Shelby mailto:acr...@io... 45533 Stablemates Ct. http://www.io.com/~acroyear Sterling, VA 20164 (703) 404-0314 | 247-7868 Software Engineer, ISX Corporation, Arlington, VA "The people of England will permit anything...except cruelty to horses and a rise in the price of beer." -- Return of the Musketteers (1989) ---------------------------------------------------------------------- |
From: Joseph S. <acr...@io...> - 2003-02-13 21:22:57
|
RSSReader.parseInput() : Document d = new Document(in) will throw an exception if using a plain FileReader, because "mark()" isn't supported. [java] electric.xml.ParseException: java.io.IOException: mark() not supported [java] line 1, char 0: ... [java] at electric.xml.NodeReader.parse(NodeReader.java:93) [java] at electric.xml.Document.<init>(Document.java:213) [java] at com.rsslibj.elements.RSSReader.parseInput(Unknown Source) As you can see, this is a bug in EXML, because they should be checking. the fix is easy if (!in.markSupported()) in = new BufferedReader(in); I suppose we should add that line into parseInput, but someone should file a bug note to EXML for that. They have their own "FastBufferedReader" they use when you pass a File into it instead of a Reader, but they don't use it if you pass in a Reader. Joe -- ---------------------------------------------------------------------- Joseph Shelby mailto:acr...@io... 45533 Stablemates Ct. http://www.io.com/~acroyear Sterling, VA 20164 (703) 404-0314 | 247-7868 Software Engineer, ISX Corporation, Arlington, VA "The people of England will permit anything...except cruelty to horses and a rise in the price of beer." -- Return of the Musketteers (1989) ---------------------------------------------------------------------- |
From: Joseph O. <jo...@en...> - 2003-02-05 11:06:36
|
On Wed, 5 Feb 2003, Jason Bell wrote: > The insertItem() method makes a whole heap of sense, so I do think that > should be implemented asap. Will do. So should addItem() be renamed to appendItem()? > Item.insertItem(int position) assuming that it would throw a > NullPointerException if that position didn't exist. Um... it's an ArrayList. It's by definition sparse. Do you mean "insert item such that it appears before other items beginning at that position?" > and > > Item.insertItem() just adds to the front (as suggested in Joseph Shelby's > email). > > I'm not too sure what to think about the duplicate getItems() issue until I > have run some more real world examples. > I think cloning the list sounds less and less bright as time goes on. --------------------------------------------------------- Joseph B. Ottinger jo...@en... http://enigmastation.com IT Consultant |
From: Jason B. <jas...@sy...> - 2003-02-05 11:02:02
|
Hi All The insertItem() method makes a whole heap of sense, so I do think that should be implemented asap. Item.insertItem(int position) assuming that it would throw a NullPointerException if that position didn't exist. and Item.insertItem() just adds to the front (as suggested in Joseph Shelby's email). I'm not too sure what to think about the duplicate getItems() issue until I have run some more real world examples. Kind regards Jason Bell |