2017-06-12 1 views
-1

Je suis nouveau dans les fichiers XSL, et j'ai du mal à déchiffrer ce que fait le code suivant. J'ai cherché sur Internet et ne trouve rien pour me dire ce que "nsl" ​​signifie exactement. Quelqu'un pourrait-il nous éclairer à ce sujet? Cela fait partie d'un système SOA."NSL" signifiant dans le fichier XSL

   <xsl:when test='ns1:Payment/ns1:PaymentHeader/ns1:ConsolidationType = "STANDARD"'> 
        <xsl:for-each select="ns1:Payment/ns1:PaymentModeDetail/ns1:GenericDetail/ns1:GenericLineItem"> 
         <ns0:ApInvoiceLinesInterface> 
          <ns0:invoiceLineId> 
          <xsl:value-of select="oraext:sequence-next-val('AP_INVOICE_LINES_INTERFACE_S',$CONN)"/> 
          </ns0:invoiceLineId> 
          <xsl:choose> 
          <xsl:when test="ns1:CommonInvoiceLineElements/ns1:AdjustmentReasonGid/ns1:Gid/ns1:Xid!=''">         
           <ns0:lineTypeLookupCode> 
            <xsl:text disable-output-escaping="no">MISCELLANEOUS</xsl:text> 
           </ns0:lineTypeLookupCode> 
          </xsl:when> 
          <xsl:otherwise> 
           <ns0:lineTypeLookupCode> 
            <xsl:text disable-output-escaping="no">FREIGHT</xsl:text> 
           </ns0:lineTypeLookupCode> 
          </xsl:otherwise> 
          </xsl:choose> 
          <ns0:amount> 
          <xsl:value-of select="ns1:CommonInvoiceLineElements/ns1:FreightRate/ns1:FreightCharge/ns1:FinancialAmount/ns1:MonetaryAmount"/> 
          </ns0:amount> 
          <ns0:description> 
          <xsl:value-of select='concat(substring-after(../../../ns1:PaymentHeader/ns1:InvoiceRefnum[ns1:InvoiceRefnumQualifierGid/ns1:Gid/ns1:Xid="INVOICE_DESCRIPTION"]/ns1:InvoiceRefnumValue,"BNM."),ns1:CostTypeGid/ns1:Gid/ns1:Xid)'/> 
          </ns0:description> 
          <ns0:taxClassificationCode> 
          <xsl:value-of select='concat(../../../ns1:PaymentHeader/ns1:VatAnalysis/ns1:VatCodeGid/ns1:Gid/ns1:Xid,"%")'/> 
          </ns0:taxClassificationCode> 
          <ns0:distCodeConcatenated> 
          <xsl:value-of select="ns1:CommonInvoiceLineElements/ns1:GeneralLedgerGid/ns1:Gid/ns1:Xid"/> 
          </ns0:distCodeConcatenated> 
         </ns0:ApInvoiceLinesInterface> 
        </xsl:for-each> 
       </xsl:when> 

Le sont qui que je voudrais comprendre plus est:

<ns0:amount> 
    <xsl:value-of select="ns1:CommonInvoiceLineElements/ns1:FreightRate/ns1:FreightCharge/ns1:FinancialAmount/ns1:MonetaryAmount"/> 
</ns0:amount> 

Ma raison de vouloir comprendre cela, parce que je crois que le segment suivant du code avec ce bloc est de retour une valeur positive pour le nombre lorsqu'il y a un nombre négatif qui lui est passé.

Merci d'avance!

+1

Ce n'est pas «nsl», mais «ns1» avec un dernier caractère. Je n'ai malheureusement pas le temps d'obtenir une réponse complète, mais je cherche des «espaces de noms XML». Ces espaces de noms peuvent également être utilisés dans les requêtes XPath (le contenu de 'select =" "'). – Boldewyn

+1

"J'ai cherché sur Internet ..." Vous devez trouver une stratégie d'apprentissage plus efficace. Si vous ne savez pas que ns1 est un préfixe d'espace de noms, Internet ne vous le dira pas. Lire un livre sur XPath (ou même lire la spécification du W3C) vous donnerait la réponse beaucoup plus rapidement. –

Répondre

2

ns1 est un préfixe utilisé pour sélectionner les éléments qui se trouvent dans un espace de noms. Quelque part dans votre feuille de style il y a une déclaration d'espace de noms liant ce préfixe à un espace de noms URI, sous forme de:

xmlns:ns1="some/string" 

quelque part dans votre XML source, il est une déclaration d'espace de noms similaire en plaçant une partie ou la totalité de ses éléments dans cet espace de noms . Vous devez utiliser un préfixe lié au même URI d'espace de nom afin de sélectionner les éléments dans cet espace de noms.

je crois que le segment suivant du code avec ce bloc renvoie une valeur positive pour le nombre quand il y a un nombre négatif passé à elle.

Je ne vois aucune base pour une telle croyance. Pourquoi ne pas publier un exemple (minimisé) montrant le problème.