Subject: Re: [xsl] Exclude Doctype for output HTML From: "Karl Stubsjoen" <kstubs@xxxxxxxxx> Date: Mon, 5 Nov 2007 14:49:18 -0700 |
That is exactly the problem! Yep, and I have that workaround in place, so replacing the full select element in a div wrapper. Thanks for the tips on the doctype declerations, those always seem to miff me. Karl.. On 11/5/07, Scott Trenda <Scott.Trenda@xxxxxxxx> wrote: > From the warning signs I'm seeing, you're trying to set the innerHTML of > a SELECT element via AJAX? Doesn't work in IE, read more here: > http://support.microsoft.com/kb/276228 > > If your XSLT works correctly when the options are wrapped in a <select> > element, then you're OK. If you're still getting the doctype > declaration, try specifying blank doctype attributes in your AJAX > stylesheet, as I wrote before. If you simply omit them, then the XSLT > processor will look in the stylesheet's imported stylesheets to see if > it's specified there. That's what I was talking about in my previous > reply. > > ~ Scott > > > -----Original Message----- > From: Karl Stubsjoen [mailto:kstubs@xxxxxxxxx] > Sent: Monday, November 05, 2007 3:14 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] Exclude Doctype for output HTML > > Hi Scott, I dont' mean to imply that I'm doing it in reverse order, I > think I am doing it as you have described. For clarification I have: > > Ajax Template > imports.. > Page Template > imports.. > Base Template > > In the base template I have output method = html and doctype argument > filled in. > In page template, I'm assuming this inherits the base template output > method. In the Ajax template, I'm assuming this inherits the page > template which inherits the base template output method and doctype. > To overcome the doctype output, I specificy in the Ajax template that > the output should be HTML but with no doctype specification. This is > not working as expected. > > As it turns out, IE does not do well in an Ajax request when you are > returning html elements without a parent element. So a bunch of > <option></option> elements throws off IE. Instead, and as a > workaround I am returning <select><option></option></select>. Problem > solved. > > So I am wondering, this must be an IE issue, as it is not an issue in > Firefox. Anyone else have any clues as to this behaviour? > > Thanks, > > Karl.. > > On 11/5/07, Scott Trenda <Scott.Trenda@xxxxxxxx> wrote: > > So you're essentially doing the imports in reverse from the order that > > I'd recommended. As far as I know, the .NET processor is doing it > > correctly. If you're not specifying a doctype in the main template, > the > > XSLT processor looks for one in any of the imported stylesheets, which > > is where it's getting it from. Try specifying this in your AJAX > > stylesheet first: > > <xsl:output method="html" doctype-public="" doctype-system=""/> > > > > If that doesn't work, take a shot at the other order of imports that > I'd > > recommended before. > > > > ~ Scott > > > > > > -----Original Message----- > > From: Karl Stubsjoen [mailto:kstubs@xxxxxxxxx] > > Sent: Monday, November 05, 2007 2:53 PM > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > Subject: Re: [xsl] Exclude Doctype for output HTML > > > > Ok, I am imorting my base template, and am overriding the root > > template match for the Ajax request. I have an xsl:output method to > > HTML with no doctype specification here, but it does exist in the > > imported template. So effectively, I am doing what you are > > suggesting. Is it the .NET processor throwing that in there? > > Could it be, that with no top level element, that the .NET processor > > doens't process this properly? > > > > Karl.. > > > > On 11/5/07, Scott Trenda <Scott.Trenda@xxxxxxxx> wrote: > > > I'm assuming that by "base template", you mean you have a main > > > stylesheet that does the bulk of your transforms, and that > stylesheet > > > accepts a parameter that specifies which part of the stylesheet you > > want > > > to use for your output. And one of those parts produces the option > > list > > > you described below. > > > > > > If that's the case, then the answer is no. Only one output method > can > > be > > > declared per stylesheet. You'll need to split off the <option> > section > > > into its own stylesheet, and that stylesheet can have <xsl:output > > > method="html"/> without any doctype declarations. You can use that > one > > > for your AJAX transformation. However, if that <option> section is > > > needed in the base stylesheet, you could import it via an > > <xsl:import>; > > > in that case, the templates defined within the <option> stylesheet > > will > > > be available to the base, and the base stylesheet will output with > the > > > correct doctypes as you'd specified; the <xsl:output method="html"/> > > > from the imported stylesheet will be overwritten by the > <xsl:output/> > > in > > > the base stylesheet. > > > > > > Hope that helps! > > > > > > ~ Scott > > > > > > > > > -----Original Message----- > > > From: Karl Stubsjoen [mailto:kstubs@xxxxxxxxx] > > > Sent: Monday, November 05, 2007 1:16 PM > > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > > Subject: [xsl] Exclude Doctype for output HTML > > > > > > I need to exclude the doctype decleration from the output for HTML. > > > There is a base template which sets the output type to HTML and > > > includes a doctype decleration there, but in the child template I > need > > > to override and exclude the doctype output. Is this possible. > > > > > > Platform: .NET 2.0 XSLT 1.0 > > > > > > The problem: For an Ajax request, I need to return the <option> > > > elements for my selector element. IE does not care to well for the > > > additional doctype decleration in the selector element. So I'm > > > getting: > > > doctype + <options>...</option><option>...</option> > > > > > > Thanks, > > > > > > Karl..
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Exclude Doctype for outpu, Scott Trenda | Thread | [xsl] DTD error, oryann9 |
Re: [xsl] saxon to .net exslt probl, M. David Peterson | Date | [xsl] DTD error, oryann9 |
Month |