xml
  • xslt
  • soa
  • 2017-06-12 5 views -1 likes 
    -1

    XSLファイルが新しく、次のコードが何をしているのか解読するのに問題があります。私はインターネットを検索して、 "nsl"が正確に何を意味するかを教えてくれるものは何も見つかりません。 誰かが私のためにこれについていくつかの光を発することができますか? これはSOAシステムの一部です。ザ・私が最も理解したいと思いますここである"NSL"は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> 
    

    がある:私はこのブロックで次のコードセグメントは戻っていると考えているので、このの理解を望むため

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

    私の理由であり、負の数が渡されたときの数値は正の値です。

    ありがとうございます!

    +1

    これは 'nsl'ではなく、最後の文字として 'ns1'です。私は残念ながら完全な答えを得る時間がありませんが、 "XML名前空間"を探します。これらの名前空間はXPathクエリ( 'select =" "'の中のもの)でも使うことができます。 – Boldewyn

    +1

    "私はインターネットを検索しました..."あなたはより効果的な学習戦略を見つける必要があります。 ns1が名前空間接頭辞であることを知らない場合、インターネットはあなたに言いません。 XPathに関する本を読んで(あるいはW3Cの仕様を読んでいても)、はるかに速く答えを得るでしょう。 –

    答えて

    2

    ns1は、名前空間にある要素を選択するために使用される接頭辞です。どこか自分のスタイルシート内の名前空間URIにこのプレフィックスを結合名前空間宣言は、の形で存在している:ソースXMLで

    xmlns:ns1="some/string" 
    

    どこかでこの名前空間にその要素の一部または全部を配置する同様の名前空間宣言があります。この名前空間内の要素を選択するには、同じ名前空間URIにバインドされた接頭辞を使用する必要があります。

    私はそれに を通過し、負の数が存在する場合、このブロックと次のコードセグメントは、数の 正の値を返していると信じています。

    私はそのような信念の根拠は見ません。問題を示す(最小限の)例を投稿してみませんか?

    関連する問題