Closed Bug 46633 Opened 24 years ago Closed 22 years ago

XSLT interface to mozilla/content needs some love

Categories

(Core :: XSLT, defect, P3)

defect

Tracking

()

VERIFIED FIXED
Future

People

(Reporter: axel, Assigned: peterv)

References

Details

(Whiteboard: reopened for mozilla1.0 interface discussion)

What's wrong? - the interface relies on DOM trees, but we need the document root for XSLT - we can only apply one transformation, but multiple processing instructions are legal, and covered in the standard - the transformed document can't request another transformation What'd be cool? There should remain a way to call XSLT from js. But do we need to feed it documents or URLs? I see more use of applying XSLT to dynamic data, than to dynamically modify the stylesheet. So I would like a way to give the DOM document for the XML, but not necessarily the DOM document for the XSL, to me a URL would do. XSL stylesheets are no single document anyway. Parsing of the XML document doesn't need any extra love, but some work on the XSL document can be done at parsing time, as parsing the xpath expressions and loading <xsl:include>s and <xsl:import>s Any ideas? Who should be on the CCs? Axel
Another thing I forgot: To correctly parse XPath expression, we need to map prefixes to namespaces, propably just the IDs. I didn't see any method for this in nsXMLDocument, just in nsXMLContentSink. Is that right? Axel
Sounds good. A few questions: 1) Multiple processing instructions, as I read the spec, are handled by creating a parent stylesheet that has the multiple instructions as imports so as to effectily merge them, is this your understanding? 2) I didnt come across the chaining of transformations, other than as a throw away line in the spec saying it could be done. Any ideas how we would inform the XSLT engine? Could we assume this could be carried out from JS in stages for simplicity, and let XSLT deal only with a single transformation at a time?
Hi Jus, the triggering for multiple transforms is to have a processing instruction in the transformed document for another tranformation. The way I'd like to see us coping this, is to feed the output from the XSLT process to a nsXMLContentSink, which would find out about it, and trigger another engine and transformation. I don't know enough about the layout structure, whether we even could go for a more basic content sink, so we could create the right sink for text, xml or html. Is this fiction? Concerning the single transform with multiple stylesheets, we could create a mockup stylesheet, including the real ones, but this would, taking the current design, delay the loading and parsing of the stylesheets to transforming time. Bad Thing (TM). Axel
Axel, Not sure how far you or anyone else have gone with this, so Ill throw my 2c in. A few comments from nisheeth about now would be great. :) 1) nsXMLContentSink::Observe() knows the completion of a transformation so as a starting point if it could be taught to handle new PI tranforms in the output and trigger a new transform that may give us XSLT chaining. This is set via TransformMediator. (But if we let JS mess with the observer what would we do then?). Then again we could do it all from the Transformation entry point, before/during/after letting the observer(s) know. 2) Ability to add an error observer to transformation from TransformMediator land would be handy. 3) Multiple transform observers? 4) Additions to nsIXMLDocument to expose methods for setting the XSL stylesheet (Url?) and Observer(s). Or maybe just enhance the TransformMediator for Document parameters and URL parameters for the calls its got, and expose the TransformMediator to JS (For all I know its already done).
Peter has changed the interface so that it uses DOM documents rather than DOM trees. Re-assigning to him so that he can close this out. For other things, we should probably file separate, more specific bugs.
Assignee: nisheeth → peter.vanderbeken
Moving this bug down the road. It most definitly is not new, but later. Axel
Severity: normal → enhancement
Status: NEW → RESOLVED
Closed: 24 years ago
OS: Solaris → All
Hardware: Sun → All
Resolution: --- → LATER
Target Milestone: --- → Future
reopening, mozilla1.0 should have a sane interface. Let's keep this bug on the interface to be used by content, ie. nsIDocumentTransformer
Severity: enhancement → major
Status: RESOLVED → REOPENED
Resolution: LATER → ---
Whiteboard: reopened for mozilla1.0 interface discussion
Target Milestone: Future → mozilla1.0
die pandora, die
Assignee: peter.vanderbeken → peterv
Status: REOPENED → NEW
adding mozilla1.0 keyword. This is a real 1.0 issue, IMHO.
Keywords: mozilla1.0
stripping out our bugs. This one is for the noscript part used by content. We're not gonna do anything serious to content for 1.0, so this is future.
No longer blocks: 70369, 90157
Severity: major → normal
Keywords: mozilla1.0
Summary: XSLT interface needs some love → XSLT interface to mozilla/content needs some love
Target Milestone: mozilla1.0 → Future
Depends on: txbranch
fixed by branch landing
Status: NEW → RESOLVED
Closed: 24 years ago22 years ago
Resolution: --- → FIXED
mass verifying
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.