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
**********************************************************************