Solved

ASP - XML,XSL

Posted on 2002-06-12
4
340 Views
Last Modified: 2008-02-01

  Hi !

I need an exact way how to generate dinamically XML,XSL from ASP.

Prob:
When I use native .xml and .xsl and view it in a browser, it works correctly.
When one of them (or both) comes from ASP, *sometimes* generates an error.

F.e. xsl-asp:
<%@language="JScript"%>
<%
Response.Buffer= true;
Response.ContentType = "text/xml";
%><?xml version="1.0" encoding="windows-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
 hello
</xsl:template>
</xsl:stylesheet>

F.e. xml-asp:
<%@language="JScript"%>
<%
Response.Buffer= true;
Response.ContentType="text/xml";
%>
<?xml version="1.0" encoding="windows-1252"?>
<data>
     <User Active="1" UserName="Stewe"/>
</data>

It's not a real dinamic xsl, xml, but just for an example. Sometimes it doesn't work. Error f.e.: Xml document must have a top - level element.
I've tried it with script transform, but the same occurs.

When I load first the ASP-XML part, then the native XSL part, so then sometimes ASP-XML generates an error.
When I use both of them as ASP, then sometimes the first, sometime the last generates the error. SOMETIMES.

script transform:
var oXML = new ActiveXObject("Msxml2.DOMDocument.3.0");
var oXSLT = new ActiveXObject("Msxml2.DOMDocument.3.0");
oXML.async = false;
oXSLT.async = false;
oXSLT.load("userxsl.asp"); // or userxsl.xsl
oXML.load("user.asp"); // or user.xml

I cannot found a stabile way.
When both of them are native, then everything is stabile and working correctly.

There're differences in ASP-XSL and native XSL header.

Only in native XSL header (f.e. GET localhost/userxsl.xsl)
ETag: "a07b9245fe11c21:bc7"
Accept-Ranges: bytes
Last-Modified: Wed, 12 Jun 2002 10:45:30 GMT

Only in ASP-XSL header:
Connection: keep-alive
Connection: Keep-Alive (native XSL has only the first one)
Cache-control: private
Expires: Wed, 12 Jun 2002 10:44:43 GMT

Both content type is text/xml of course.

What can be the problem.
I've just updated everything using windows update. Everything.


   Stewe

0
Comment
Question by:stewe
  • 2
  • 2
4 Comments
 
LVL 23

Expert Comment

by:b1xml2
ID: 7073397
The answer is this stewe.

consider this
=============
XSLT Document
==============
<%@language="JScript"%>



<%
Response.Buffer= true;
Response.ContentType = "text/xml";
%>
<?xml version="1.0" encoding="windows-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
hello
</xsl:template>
</xsl:stylesheet>


There will be an error generated by the XSLT Engine indicating that the stylesheet is not well-formed. Viewing it directly will pose no problem. This is a legacy of MSXML 2 where if there is an empty line at the top of the document, it wont load for any XML document. So, view the xsl.asp source and see if there is an extra line at the top.

If the asp is changed to
<%@language="JScript"%>
<%
Response.Buffer= true;
Response.ContentType = "text/xml";
%><?xml version="1.0" encoding="windows-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
hello
</xsl:template>
</xsl:stylesheet>


There will be no problem.

Make sure you clear your cache before you do anything with your browser.
0
 
LVL 23

Accepted Solution

by:
b1xml2 earned 300 total points
ID: 7073404
also you might like to do the same for your XML document.

<%@language="JScript"%>
<%
Response.Buffer= true;
Response.ContentType="text/xml";
%><?xml version="1.0" encoding="windows-1252"?>
<data>
    <User Active="1" UserName="Stewe"/>
</data>
0
 
LVL 1

Author Comment

by:stewe
ID: 7074969

You're ok. It works now.
There're 2 important things:
- these new lines
- and in IIS, the 'ASP file caching' MUST BE CHECKED. MUST BE.

   Stewe
0
 
LVL 1

Author Comment

by:stewe
ID: 7074972
Thx

   Stewe
0

Featured Post

MIM Survival Guide for Service Desk Managers

Major incidents can send mastered service desk processes into disorder. Systems and tools produce the data needed to resolve these incidents, but your challenge is getting that information to the right people fast. Check out the Survival Guide and begin bringing order to chaos.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Many times as a report developer I've been asked to display normalized data such as three rows with values Jack, Joe, and Bob as a single comma-separated string such as 'Jack, Joe, Bob', and vice versa.  Here's how to do it. 
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question