You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by Olivier LAMY <LA...@accor-hotels.com> on 2003/02/19 19:17:13 UTC
Using java extension with code
I send you the xml :
<OTA_HotelAvailRQ LanguageId="fr" Version="2001B"
xmlns="http://www.opentravel.org/OTA"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opentravel.org/OTA
http://57.200.123.192:8090/OTAebServer/schemas/2001B/OTA_HotelAvailRQ.xsd"><
BookingSegments><BookingSegment><HotelReference
HotelCode="1099"/><StayDateRange EndDate="2003-03-27T19:02:31"
StartDate="2003-03-26T19:02:31"/><RatePlanCandidates><RatePlanCandidate
RatePlanCode=""/></RatePlanCandidates><RoomStayCandidates><RoomStayCandidate
RoomTypeCode=""><GuestCount
Count=""/></RoomStayCandidate></RoomStayCandidates></BookingSegment></Bookin
gSegments></OTA_HotelAvailRQ>
the xsl :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:ota="http://www.opentravel.org/OTA"
xmlns:java="http://xml.apache.org/xalan/java"
exclude-result-prefixes="ota java">
<xsl:output method="xml" encoding="ISO-8859-1"/>
<!-- init des paramètres -->
<!--<xsl:param name="TCfonction"/>-->
<xsl:param name="codecro"/>
<xsl:param name="codesubcro"/>
<!-- include xsl utilitaire -->
<!--<xsl:include href="util.xsl" />-->
<xsl:template match="ota:OTA_HotelAvailRQ">
<accortronccommun mode="input" version="1.00">
<fonction nom="eDispochbR5SNMI">
<parametre nom="codecro"><xsl:value-of select="$codecro" /></parametre>
<parametre nom="codesubcro"><xsl:value-of select="$codesubcro"
/></parametre>
<xsl:apply-templates select="//ota:StayDateRange" />
<!--
<parametre nom="datedeb">
<xsl:value-of select="//StayDateRange/@StartDate" />
<xsl:call-template name="return_date">
<xsl:with-param name="date">
</xsl:with-param>
</xsl:call-template>
</parametre>
<parametre nom="datefin">
<xsl:value-of select="//StayDateRange/@EndDate" />
<xsl:call-template name="return_date">
<xsl:with-param name="date">
</xsl:with-param>
</xsl:call-template>
</parametre>
-->
<!-- recherche du codehotel -->
<parametre nom="codehotel">
<xsl:value-of select="//ota:HotelReference/@HotelCode" />
</parametre>
<!-- recherche du codeproduit -->
<parametre nom="codeproduit">
<xsl:value-of select="//RoomStayCandidates/RoomStayCandidate/@RoomTypeCode"
/>
</parametre>
<!-- recherche du rateaccess -->
<parametre nom="listdata">
<xsl:value-of select="//RatePlanCandidates/RatePlanCandidate/@RatePlanCode"
/>
</parametre>
<parametre nom="typedata">0</parametre>
<parametre nom="nbpax">
<xsl:value-of
select="//RoomStayCandidates/RoomStayCandidate/GuestCount/@Count" />
</parametre>
<parametre nom="codelangue">
<xsl:value-of select="//@LanguageId" />
</parametre>
</fonction>
</accortronccommun>
</xsl:template>
<xsl:template match="ota:StayDateRange">
<xsl:variable name="datedeb"
select="java:com.accor.util.Tools.transformISODateToTcDate(string(@StartDate
))" />
<xsl:variable name="datefin"
select="java:com.accor.util.Tools.transformISODateToTcDate(string(@EndDate))
" />
<parametre nom="datedeb">
<xsl:value-of select="$datedeb" />
</parametre>
<parametre nom="datefin">
<xsl:value-of select="$datefin" />
</parametre>
</xsl:template>
</xsl:stylesheet>
The static method :
public static String transformISODateToTcDate(String DatetoTransform) {
try {
SimpleDateFormat DF = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss",
Locale.US);
Date DT = DF.parse(DatetoTransform);
return new SimpleDateFormat("dd MMM yy", Locale.US).format(DT);
} catch (Exception e) {
logger.error("erreur sur parsing de la date", e);
return new String("");
}
}
The xalan Trace :
null Line #0, Column #0: template match='/'
null Line #0, Column #0: apply-templates
Selected source node '#document'
(default root rule) apply-templates, select='null':
10001: OTA_HotelAvailRQ
null Line #0, Column #0: template match='*'
null Line #0, Column #0: apply-templates
Selected source node 'OTA_HotelAvailRQ'
(default rule) apply-templates, select='null':
10008: BookingSegments
null Line #0, Column #0: template match='*'
null Line #0, Column #0: apply-templates
Selected source node 'BookingSegments'
(default rule) apply-templates, select='null':
10009: BookingSegment
null Line #0, Column #0: template match='*'
null Line #0, Column #0: apply-templates
Selected source node 'BookingSegment'
(default rule) apply-templates, select='null':
1000a: HotelReference
1000c: StayDateRange
1000f: RatePlanCandidates
10012: RoomStayCandidates
null Line #0, Column #0: template match='*'
null Line #0, Column #0: apply-templates
Selected source node 'HotelReference'
(default rule) apply-templates, select='null':
[empty node list]
null Line #0, Column #0: template match='*'
null Line #0, Column #0: apply-templates
Selected source node 'StayDateRange'
(default rule) apply-templates, select='null':
[empty node list]
null Line #0, Column #0: template match='*'
null Line #0, Column #0: apply-templates
Selected source node 'RatePlanCandidates'
(default rule) apply-templates, select='null':
10010: RatePlanCandidate
null Line #0, Column #0: template match='*'
null Line #0, Column #0: apply-templates
Selected source node 'RatePlanCandidate'
(default rule) apply-templates, select='null':
[empty node list]
null Line #0, Column #0: template match='*'
null Line #0, Column #0: apply-templates
Selected source node 'RoomStayCandidates'
(default rule) apply-templates, select='null':
10013: RoomStayCandidate
null Line #0, Column #0: template match='*'
null Line #0, Column #0: apply-templates
Selected source node 'RoomStayCandidate'
(default rule) apply-templates, select='null':
10015: GuestCount
null Line #0, Column #0: template match='*'
null Line #0, Column #0: apply-templates
Selected source node 'GuestCount'
(default rule) apply-templates, select='null':
[empty node list]
STARTDOCUMENT
ENDDOCUMENT
Thanks a lot to help me,
Olivier
**********************************************************************
Ce message électronique et tous les fichiers joints ainsi que les information contenues dans ce message ( ci après "le message" ), sont confidentiels et destinés exclusivement à l'usage de la personne à laquelle ils sont adressés. Si vous avez reçu ce message par erreur, merci de le renvoyer à son émetteur et de le détruire. Toute diffusion, publication, totale ou partielle ou divulgation sous quelque forme que se soit non expressément autorisées de ce message, sont interdites.
**********************************************************************
This e-mail, any attachements and the information contained (herein " the message" ) are confidentiel and intended solely for the use of the addressee(s) if you have received this message in error please send it back to the sender and delete it. Unauthorized publication, use, dissemination or disclosure, either whole or partial, of this message is stictly prohibited
**********************************************************************