XSLT-Transformation mit „Extension Functions“

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • XSLT-Transformation mit „Extension Functions“

    Hallo,
    Ich suche eine Möglichkeit unter IOS eine XSLT-Transformation mit „Extension Functions“ zu realisieren.
    http://www.w3.org/TR/xslt20/#dt-extension-function

    Im Prinzip suche ich dafür eine Lösung:

    Quellcode

    1. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    2. xmlns:com="http://www.some.domain/XSLT/Common"
    3. xmlns:func="http://exslt.org/functions"
    4. extension-element-prefixes="func com"
    5. version="1.0">
    6. <xsl:template match="anything">
    7. <xsl:value-of select=" func:getSomething(@Id)"/>
    8. </xsl:template>

    Ich hab es schon mit der „libxslt“ und „libexslt“ probiert, aber leider bin ich damit nicht durchs Review gekommen.
    Beste Grüße
    Hofi
  • Hofi schrieb:

    Hallo,
    Ich suche eine Möglichkeit unter IOS eine XSLT-Transformation mit „Extension Functions“ zu realisieren.
    http://www.w3.org/TR/xslt20/#dt-extension-function

    Im Prinzip suche ich dafür eine Lösung:

    Quellcode

    1. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    2. xmlns:com="http://www.some.domain/XSLT/Common"
    3. xmlns:func="http://exslt.org/functions"
    4. extension-element-prefixes="func com"
    5. version="1.0">
    6. <xsl:template match="anything">
    7. <xsl:value-of select=" func:getSomething(@Id)"/>
    8. </xsl:template>

    Ich hab es schon mit der „libxslt“ und „libexslt“ probiert, aber leider bin ich damit nicht durchs Review gekommen.
    Beste Grüße
    Hofi


    und warum nicht?
  • Das ist der Grund:

    We have discovered one or more issues with your recent binary submission. The following issues will need to be corrected in order for your application to proceed to review:
    Non-public API usage:
    • The app references non-public symbols: xsltApplyStylesheet, xsltCleanupGlobals, xsltFreeStylesheet, xsltParseStylesheetFile, xsltRegisterExtFunction, xsltRegisterExtModule, xsltSaveResultToString

  • gritsch schrieb:

    die frage ist ja wohl eher warum man die nicht verwenden darf. sind ja keine privaten funktionen von apple. du könntest die lib theoretisch ja auch eincompilieren in dein produkt. und was daran dann noch der aufruf privater funktionen sein soll...
    Genau diese Frage habe ich auch den Apple Support gestellt.

    Ich habe zwar noch keine Antwort bekommen, aber es wird sicherlich darauf hinauslaufen, das ich mir eine Alternative suchen muss.

    Bzw. müssten sie mir eine Alternative nennen können. Es ist ja kein Zauberwerk was ich da machen möchte.
    Zudem ist das noch 3W Standard.


    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Hofi ()

  • Die Antwort von Support:

    Hello Andreas,

    libxslt is not a publicly documented library in iOS and therefore its functions will be flagged as violations by App Review. If you'd like to use the public xslt library and compile it into your app, make sure to rename the functions so they do not collide with the private functions in iOS.




    In order to encourage iOS Engineering to either make libxslt public or to provide a public framework for equivalent functionality, I encourage you to file an enhancement request using Apple's online bug reporter located at <http://bugreport.apple.com>.




    Regards,
  • Wußtest Du nicht das es die XSLT Lib als private API in iOs gibt oder wußtest Du es und du brauchtest nur ein paar Funktionen die die interne Version nicht hat und hast deshalb die Externe genommen ?

    Naja so oder so ist es ja geklärt und Apple kannst Du schlecht einen Strick draus drehen was hätten sie schon tzun sollen ? :)

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Thallius schrieb:

    Naja so oder so ist es ja geklärt und Apple kannst Du schlecht einen Strick draus drehen was hätten sie schon tzun sollen ? :)

    Apple könnte mal konsistent sein mit ihren „privaten“ APIs. Sowohl libxml als auch libxslt ist Open Source. Für beide Libraries findet man bei Apple nur eine kleine Manpage in der Apple-Dokumentation. Die Dokumentation der ganzen Funktionen muss man bei beiden aus anderen Quellen nehmen. Warum soll jetzt also libxslt „private API“ sein, während libxml das nicht ist? Warum bietet Xcode dann überhaupt an, gegen die libxslt zu linken? Woher soll man also überhaupt wissen, dass libxslt „private API“ ist?

    Michael
  • Thallius schrieb:

    Wußtest Du nicht das es die XSLT Lib als private API in iOs gibt oder wußtest Du es und du brauchtest nur ein paar Funktionen die die interne Version nicht hat und hast deshalb die Externe genommen ?
    Ich habe die Libxslt benutzt, die mir das IOS zur Verfügung stellt. Deshalb ging ich davon aus, das es keine Probleme geben wird.
  • Das sind Methode/Funktionen die nicht public sind :) Sprich Apple gibt sie (noch) nicht für die Benutzung durch andere frei da sie sich vorbehalten noch etwas daran zu ändern. Würdest Du diese Benutzen und Apple ändert was dran, dann würde Deine App auf einmal abstürzen. Das wäre unschön. Deshalb ist das Benutzen privater API's eben untersagt.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Thallius schrieb:

    Das sind Methode/Funktionen die nicht public sind :) Sprich Apple gibt sie (noch) nicht für die Benutzung durch andere frei da sie sich vorbehalten noch etwas daran zu ändern. Würdest Du diese Benutzen und Apple ändert was dran, dann würde Deine App auf einmal abstürzen. Das wäre unschön. Deshalb ist das Benutzen privater API's eben untersagt.

    Gruß

    Claus


    dir ist aber schon klar um was es hier geht? hir gehts nicht um irgendwelche funktionen/methoden von apple sondern um funktionen einer Open Source library.
  • Naja irgendwie ist unter Linux doch alles mehr oder weniger OpenSource oder nicht ;)

    Apple verbietet ihm ja auch nicht die lib zu benutzen. Sie verbieten nur die von Apple implementierte zu benutzen. Er kann doch jetzt problemlos seine eigene dazu linken.
    Also mir ist das so herum lieber als wenn ich nachher total unfertige Frameworks bekomme die nachträglich geflickschustert werden damit sie richtig funktionieren.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Thallius schrieb:

    Naja irgendwie ist unter Linux doch alles mehr oder weniger OpenSource oder nicht ;)

    Apple verbietet ihm ja auch nicht die lib zu benutzen. Sie verbieten nur die von Apple implementierte zu benutzen. Er kann doch jetzt problemlos seine eigene dazu linken.
    Also mir ist das so herum lieber als wenn ich nachher total unfertige Frameworks bekomme die nachträglich geflickschustert werden damit sie richtig funktionieren.

    Gruß

    Claus


    falls apple - und das glaube ich nicht - die funktionsweise der lib geändert hat, dann sollten sie sie umbenennen.

    ich brauche als anwender nicht 10 bis 20 mal die gleiche (ca) library auf meinem gerät...