Question on NSXMLNode and related classes

View: New views
5 Messages — Rating Filter:   Alert me  

Question on NSXMLNode and related classes

by Doug Simons :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.
Doug Simons email signatureHello all,

Currently in GNUstep, the NSXMLNode class and its relatives have been stubbed out but not implemented yet. Because of this our application on Mac includes XML parsing and generating capabilities that are missing from the Linux/GNUstep version. We would love to add this functionality to the Linux version. Unfortunately, our current development schedule won't give us a chance to devote any large chunks of time to this until probably sometime next year.

My question right now is a general one about where these XML classes fit in the GNUstep list of priorities. Specifically, is anyone likely to be working on them in the next few months? It will help our planning and setting expectations with our customers.

While we don't have time to do the implementation ourselves, we would be very happy to help with testing and debugging. Our code covers a substantial number of the methods in these classes, so I think we can help ensure that at least the basic functionality is all working the same as in Cocoa when the implementation gets to that point.

Thanks! GNUstep is an amazing project, and we very much appreciate the tremendous amount of effort that has gone into it.

--
Doug Simons

Principal Developer
TestPlant
 
TestPlant Inc T    +1 720-890-0211 ext 13
4730 Walnut Street F    +1 720-890-0209
Boulder, CO 80301 doug.simons@...
USA
http://www.testplant.com

This email and any attachments may contain privileged / confidential information. If you have received this email in error
or believe that you are not the intended recipient, please delete all content and attached files and contact TestPlant via
the switchboard on +1 720-890-0211 or via return e-mail. You should not copy, forward or use any part of the
contents in any way. Any such unauthorised use or disclosure may be unlawful.


_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: Question on NSXMLNode and related classes

by Richard Frith-Macdonald-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 27 Aug 2009, at 18:43, Doug Simons wrote:

> Hello all,
>
> Currently in GNUstep, the NSXMLNode class and its relatives have  
> been stubbed out but not implemented yet. Because of this our  
> application on Mac includes XML parsing and generating capabilities  
> that are missing from the Linux/GNUstep version. We would love to  
> add this functionality to the Linux version. Unfortunately, our  
> current development schedule won't give us a chance to devote any  
> large chunks of time to this until probably sometime next year.
>
> My question right now is a general one about where these XML classes  
> fit in the GNUstep list of priorities. Specifically, is anyone  
> likely to be working on them in the next few months? It will help  
> our planning and setting expectations with our customers.
>
> While we don't have time to do the implementation ourselves, we  
> would be very happy to help with testing and debugging. Our code  
> covers a substantial number of the methods in these classes, so I  
> think we can help ensure that at least the basic functionality is  
> all working the same as in Cocoa when the implementation gets to  
> that point.

I don't think they fit in the list of priorities at all ... mostly we  
add new stuff when people actually ask for it and are prepared to  
devote time to it, and do long term prioritisation of stuff on the  
basis of actual needs.

Historically GNUstep has been way ahead of OSX in XML support, as we  
had the GSXML classes long before OSX had any XML support, and we  
fully implemented Apple's NSXMLParser before Apple did!

Most likely, any functionality from the new XML classes is already  
available in the GSXML classes, so you might not need the new stuff.

All that being said ...

I've had quite a lot of experience implementing/using XML code, and  
i'd like to get those classes in place just for API completeness/
tidyness if nothing else.

The current stubs are designed on the assumption (based on Apple's new  
API) that Apple implemented their new classes on top of libxml2, and  
we might do the same.
However, Dr Nikolaus Shaller has done partial native objc  
implementations in his software, which we can incorporate into GNUstep  
if we want.

So ... if Apple did not wrap libxml2 (can you confirm that one way or  
the other) we could definitely adopt one of those two approaches ...  
and I ought to be able to find some time to work on it over the  
weekend and/or next week.

Can you provide a list of exactly what features you use?


_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: Question on NSXMLNode and related classes

by Richard Frith-Macdonald-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 28 Aug 2009, at 16:12, Richard Frith-Macdonald wrote:

>
> On 27 Aug 2009, at 18:43, Doug Simons wrote:
>
>> Hello all,
>>
>> Currently in GNUstep, the NSXMLNode class and its relatives have  
>> been stubbed out but not implemented yet. Because of this our  
>> application on Mac includes XML parsing and generating capabilities  
>> that are missing from the Linux/GNUstep version. We would love to  
>> add this functionality to the Linux version. Unfortunately, our  
>> current development schedule won't give us a chance to devote any  
>> large chunks of time to this until probably sometime next year.
>>
>> My question right now is a general one about where these XML  
>> classes fit in the GNUstep list of priorities. Specifically, is  
>> anyone likely to be working on them in the next few months? It will  
>> help our planning and setting expectations with our customers.
>>
>> While we don't have time to do the implementation ourselves, we  
>> would be very happy to help with testing and debugging. Our code  
>> covers a substantial number of the methods in these classes, so I  
>> think we can help ensure that at least the basic functionality is  
>> all working the same as in Cocoa when the implementation gets to  
>> that point.
>
> I don't think they fit in the list of priorities at all ... mostly  
> we add new stuff when people actually ask for it and are prepared to  
> devote time to it, and do long term prioritisation of stuff on the  
> basis of actual needs.
>
> Historically GNUstep has been way ahead of OSX in XML support, as we  
> had the GSXML classes long before OSX had any XML support, and we  
> fully implemented Apple's NSXMLParser before Apple did!
>
> Most likely, any functionality from the new XML classes is already  
> available in the GSXML classes, so you might not need the new stuff.
>
> All that being said ...
>
> I've had quite a lot of experience implementing/using XML code, and  
> i'd like to get those classes in place just for API completeness/
> tidyness if nothing else.
>
> The current stubs are designed on the assumption (based on Apple's  
> new API) that Apple implemented their new classes on top of libxml2,  
> and we might do the same.
> However, Dr Nikolaus Shaller has done partial native objc  
> implementations in his software, which we can incorporate into  
> GNUstep if we want.
>
> So ... if Apple did not wrap libxml2 (can you confirm that one way  
> or the other) we could definitely adopt one of those two  
> approaches ... and I ought to be able to find some time to work on  
> it over the weekend and/or next week.
>
> Can you provide a list of exactly what features you use?


PS. You may also find that the webservices library (in gnustep svn),  
which works on both Apple Foundation and GNUstep, does everything you  
need.



_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: Question on NSXMLNode and related classes

by Doug Simons :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.
Doug Simons email signatureHi Richard,

Thanks for your reply! Actually, we're fairly heavily invested in using the NSXMLNode API's. So if we were going to look at GSXML or any other library, it would be as a means to implement those classes.

I have no inside information about how Apple's implementation works, but I see that libxml2 is installed on the system, so your assumption that they use it seems reasonable. So probably building the GNUstep implementation on that library will help to keep everything compatible.

Here's a list of the methods we are using in these classes (it's possible that I missed a couple, but this should be close):

NSXMLNode Methods:

+ elementWithName:
+ elementWithName:children:attributes:
+ textWithStringValue:
+ attributeWithName:stringValue:
+ commentWithStringValue:
+ processingInstructionWithName:stringValue:

- kind
- name
- setName:
- childCount
- children
- childAtIndex:
- parent
- nextNode
- previousNode
- nextSibling
- previousSibling
- detach
- stringValue
- setStringValue:
- XMLString
- XMLStringWithOptions:
- description
- copy
- copyWithZone:
- XPath
- nodesForXPath:error:

NSXMLDocument Methods:

+ initWithRootElement:
+ initWithXMLString:options:error:

- initWithRootElement:
- rootElement
- characterEncoding
- documentContentKind
- MIMEType
- URI
- DTD
- version
- setCharacterEncoding:
- setDocumentContentKind:
- setMIMEType:
- setURI:
- setVersion:
- XMLData

NSXMLElement Methods:

- initWithName:
- initWithXMLString:error:
- setChildren:
- addChild:
- removeChildAtIndex:
- insertChild:atIndex:
- replaceChildAtIndex:withNode:
- attributes
- addAttribute:
- setAttributesAsDictionary:
- removeAttributeForName:
- normalizeAdjacentTextNodesPreservingCDATA:

Let me know if you have more questions about our use of any of this.

--
Doug Simons

Principal Developer
TestPlant
 
TestPlant Inc T    +1 720-890-0211 ext 13
4730 Walnut Street F    +1 720-890-0209
Boulder, CO 80301 doug.simons@...
USA
http://www.testplant.com

This email and any attachments may contain privileged / confidential information. If you have received this email in error
or believe that you are not the intended recipient, please delete all content and attached files and contact TestPlant via
the switchboard on +1 720-890-0211 or via return e-mail. You should not copy, forward or use any part of the
contents in any way. Any such unauthorised use or disclosure may be unlawful.

On Aug 28, 2009, at 9:28 AM, Richard Frith-Macdonald wrote:


On 28 Aug 2009, at 16:12, Richard Frith-Macdonald wrote:


On 27 Aug 2009, at 18:43, Doug Simons wrote:

Hello all,

Currently in GNUstep, the NSXMLNode class and its relatives have been stubbed out but not implemented yet. Because of this our application on Mac includes XML parsing and generating capabilities that are missing from the Linux/GNUstep version. We would love to add this functionality to the Linux version. Unfortunately, our current development schedule won't give us a chance to devote any large chunks of time to this until probably sometime next year.

My question right now is a general one about where these XML classes fit in the GNUstep list of priorities. Specifically, is anyone likely to be working on them in the next few months? It will help our planning and setting expectations with our customers.

While we don't have time to do the implementation ourselves, we would be very happy to help with testing and debugging. Our code covers a substantial number of the methods in these classes, so I think we can help ensure that at least the basic functionality is all working the same as in Cocoa when the implementation gets to that point.

I don't think they fit in the list of priorities at all ... mostly we add new stuff when people actually ask for it and are prepared to devote time to it, and do long term prioritisation of stuff on the basis of actual needs.

Historically GNUstep has been way ahead of OSX in XML support, as we had the GSXML classes long before OSX had any XML support, and we fully implemented Apple's NSXMLParser before Apple did!

Most likely, any functionality from the new XML classes is already available in the GSXML classes, so you might not need the new stuff.

All that being said ...

I've had quite a lot of experience implementing/using XML code, and i'd like to get those classes in place just for API completeness/tidyness if nothing else.

The current stubs are designed on the assumption (based on Apple's new API) that Apple implemented their new classes on top of libxml2, and we might do the same.
However, Dr Nikolaus Shaller has done partial native objc implementations in his software, which we can incorporate into GNUstep if we want.

So ... if Apple did not wrap libxml2 (can you confirm that one way or the other) we could definitely adopt one of those two approaches ... and I ought to be able to find some time to work on it over the weekend and/or next week.

Can you provide a list of exactly what features you use?


PS. You may also find that the webservices library (in gnustep svn), which works on both Apple Foundation and GNUstep, does everything you need.



_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev



_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: Question on NSXMLNode and related classes

by Richard Frith-Macdonald-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 28 Aug 2009, at 20:08, Doug Simons wrote:

> Hi Richard,
>
> Thanks for your reply! Actually, we're fairly heavily invested in  
> using the NSXMLNode API's. So if we were going to look at GSXML or  
> any other library, it would be as a means to implement those classes.

As you have decided to use the new Apple classes, your best bet seems  
to be to implement them on top of libxml2 ... which is what GSXML  
already does, so you should be able to re-use much of that code (I  
think it already does most of what the apple stuff does).

> I have no inside information about how Apple's implementation works,  
> but I see that libxml2 is installed on the system, so your  
> assumption that they use it seems reasonable. So probably building  
> the GNUstep implementation on that library will help to keep  
> everything compatible.

I spent some time with google, and managed to find some emails where  
people from Apple explicitly say their code is built on top of  
libxml2, so an implementation based on that for GNUstep is almost  
guaranteed to be able to fairly easily keep up with any further  
extensions Apple add.

> Here's a list of the methods we are using in these classes (it's  
> possible that I missed a couple, but this should be close):
>
> NSXMLNode Methods:

<snip>

I think that list is extensive enough that you practically need to  
implement the whole thing ... not difficult, but more time consuming  
than I can afford now (though I can always spare a bit of time to  
help).  It's possible you could write the NS classes as thin wrappers  
round the GSXML classes, but given the amount you want to do, I think  
you would be best advised to wrap libxml2 directly using the working  
code in the GSXML classes as an example of how libxml2 works and can  
be used, and copying chunks of code where it saves time.



_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev