Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Saxon — Майкл Кей жасаған XSLT және XQuery процессоры, қазір оны Saxonica компаниясы дамытып, қолдауды жүзеге асырады. Ашық және жабық кодты коммерциялық нұсқалары бар. Java, JavaScript және .NET платформалары үшін нұсқалары қолжетімді. 2023 жылғы қаңтар айының мәліметі бойынша, ағымдағы нұсқасы — 12.0.
Saxon is an XSLT and XQuery processor created by Michael Kay and now developed and maintained by his company, Saxonica. There are open source and also closed source commercial versions. Versions exist for Java, JavaScript and NET. The current version, as of January 2023, is 12.0.
Нұсқалар
Сакстардың бастапқы даму желісі 6-шы нұсқалар сериясымен аяқталды. Бұл XSLT 1.0 процессорларының сериясы. Қазіргі 6.5.5 нұсқасы техникалық қызмет көрсетуден басқа әрі қарышта дамытылмайды. 6 сериясы тек Java бағдарламалау тілі үшін қолжетімді. Қазіргі Saxon 12 даму желісі XSLT 3.0 және XQuery 3.1 талаптарын іске асырады. Saxon 12 XSLT 1.0 және XSLT 2.0 стильдік парақтарын өңдей алады. (XSLT 2.0 және 3.0 XSLT 1.0-мен толық үйлесімді.) Сондай-ақ, ұсынылып отырған XSLT 4.0 талаптарына қатысты таңдаулы қолдауды қамтиды. Екі бөлек бастапқы код базасы бар: Java бастапқы коды және JavaScript бастапқы коды. Java коды үш платформаға арналған өнімдерді жасау үшін қолданылады: SaxonJ (Java және басқа JVM тілдері, мысалы Scala), SaxonCS (C# және басқа NET тілдері, мысалы VB.NET) және SaxonC (C, C++, Python және PHP үшін API-мен). JavaScript код базасы SaxonJS-ті жасау үшін қолданылады, ол веб-браузерлерде және Node.js ортасында жұмыс істейді. Java-да құрастырылған нұсқалар үш деңгейде болады: Home Edition – бұл ашық бастапқы кодты өнім, ол талаптарда анықталған стандарттарға сәйкестіктің ең төменгі деңгейін ұсынады. Professional Edition – стандарттарда талап етілмейтін, мысалы, кеңейтілген функциялар мен сериялау опциялары сияқты өндірушіге тән функционалдықтарды қосады. Enterprise Edition – W3C стандарттарында қосымша мүмкіндік ретінде анықталған, схемалық тану және ағындылық сияқты кеңейтілген мүмкіндіктерді, сондай-ақ көп жіпті орындау және байт-кодты жасау сияқты өнімділікке қатысты мүмкіндіктерді қосады. SaxonCS өнімі XSLT-те жазылған Java-дан C# транспиляторы арқылы Java бастапқы код базасынан құрастырылған (https://markupuk.org/webhelp/index.html#ar04.html). 2022 жылғы сәуір айының мәліметі бойынша, осы платформада тек Enterprise Edition ұсынылады. 2004 жылдан 2009 жылға дейін Saxon екі бөлек нысанда қолжетімді болды: Saxon B және Saxon SA. Екеуі де ұқсас код базасына негізделген. Saxon B – Mozilla Public License лицензиясы бойынша шығарылған ашық бастапқы кодты бағдарламалық жасақтама, ал Saxon SA – жабық бастапқы кодты коммерциялық өнім болды. Saxon B мен Saxon SA арасындағы айырмашылық – B «негізгі», ал SA «схемалық» болды. Бұл терминдер XSLT 2.0 және XQuery 1.0 талаптарындағы терминдерге сілтеме жасайды. «Схемалық» процессор бастапқы XML құжатындағы әртүрлі элементтердің дерек түрлерін анықтау үшін W3C XML схемасын пайдалана алады. Бұл дерек түрлерін XPath 2.0 және XSLT 2.0 командаларында қолдануға болады. «Негізгі» XSLT 2.0 процессоры дерек түрлері туралы ақпаратты пайдалана алмайды. Saxon XSLT 2.0, XPath 2.0 және 3.0, XQuery 1.0 және 3.0 W3C ұсынымдарына қатаң сәйкес келеді, сондай-ақ XML Schema 1.0 және 1.1 талаптарын іске асырады. 2021 жылғы мәлімет бойынша, қазіргі нұсқа (10.6) XSLT 3.0, XPath 3.1 және XQuery 3.1 үшін W3C ұсынымдарына сәйкес келеді. Saxon коды Java тілінде жазылған. 2005 жылы мамыр айында Дэвид Петерсон және басқалар Saxon-ды IKVM.NET кросс-компиляторын пайдаланып .NET платформасында жұмыс істеу үшін кросс-компиляциялауға болатынын көрсетті, соның нәтижесінде Saxon.NET жеке өнім ретінде пайда болды. Saxon 8.7 нұсқасымен Saxonica осы технологияны қабылдады және осы нұсқадан бастап барлық нұсқалар Java және .NET үшін бір уақытта шығарылды. .NET нұсқасы Java платформасына тән мүмкіндіктерді (мысалы, JDOM, Dom4j және XOM-мен интеграция) алып тастайды және .NET платформасының XML өңдеу мүмкіндіктерімен интеграцияны қамтамасыз ететін мүмкіндіктерді ұсынады. 2012 жылы бірнеше прототиптерден кейін Saxonica Saxon Client Edition (Saxon CE) нұсқасын шығарды, бұл өнімнің браузер ортасында жұмыс істеуге бейімделген нұсқасы. Бұл Java бастапқы кодын Google жасаған GWT кросс-компиляторы арқылы JavaScript-ке кросс-компиляциялауға мүмкіндік беру арқылы жүзеге асырылды. Saxon CE браузерде XSLT 2.0-дың алғашқы іске асырылуын қамтамасыз етеді, сонымен қатар тілді кеңейтеді, осылайша ол тек HTML-ді ғана емес, пайдаланушының өзара әрекеттесуін тікелей басқара алады. 2013 жылғы ақпан айында Saxon CE 1.1 нұсқасымен өнім ашық бастапқы кодқа айналды. 2016 жылғы ақпан айында Майкл Кей Saxonica компаниясының таза JavaScript-те жазылған Saxon CE-нің орнын алмастыру бойынша жұмыс істеп жатқанын және оған Saxon JS деп ат қойғанын хабарлады. Саксонның авторы Майкл Кей XSLT 2.0 талаптарының редакторы және XSLT 3.0 жобасының редакторы болып табылады.
The original development line of Saxon ended with the version 6 series. This is a series of XSLT 1.0 processors. The current version, 6.5.5, is not undergoing further development aside from maintenance. The 6 series is only available for the Java programming language. The current development line, Saxon 12, implements the XSLT 3.0 and XQuery 3.1 specifications. Saxon 12 can process XSLT 1.0 and XSLT 2.0 stylesheets. (XSLT 2.0 and 3.0 are highly backwards compatible with XSLT 1.0.) and also includes selective support for the proposed XSLT 4.0 specification. There are two separate source bases: the Java source, and the JavaScript source. The Java source is used to generate products for three platforms: SaxonJ (for Java and other JVM languages such as Scala), SaxonCS (for C# and other NET languages such as VB. NET), and SaxonC (with APIs for C, C++, Python, and PHP). The JavaScript source base is used to generate SaxonJS, which runs in Web browsers and under Node. js. The Java built versions come in three levels: Home Edition offers the minimal level of standards conformance defined in the specifications, as an open source product. Professional Edition adds vendor specific functionality not required by the standards, for example a range of extension functions and serialisation options. Enterprise Edition adds advanced features (defined in the W3C standards as optional) including schema awareness and streaming, as well as performance related features such as multi threaded execution and bytecode generation. The SaxonCS product is built from the Java source base by means of a custom Java to C# transpiler written in XSLT (see https://markupuk. org/webhelp/index. html#ar04. html). As of April 2022, only the Enterprise Edition is offered on this platform. From 2004 until 2009, Saxon was available into two separate forms: Saxon B and Saxon SA. Both of these were built on similar codebases. Saxon B was open source software released under the Mozilla Public License, while Saxon SA was a closed source commercial product. The difference between Saxon B and Saxon SA was that B was "basic" while SA was "schema aware". These terms are references to terms in the XSLT 2.0 and XQuery 1.0 specification. A processor that is "schema aware" is able to use a W3C XML Schema to define the data types of the various elements in the source XML document(s). These data types can then be used in XPath 2.0 and XSLT 2.0 commands. A "basic" XSLT 2.0 processor is unable to use data typing information. Saxon offers strict conformance to the XSLT 2.0, XPath 2.0 and 3.0, and XQuery 1.0 and 3.0 W3C Recommendations, and also implements XML Schema 1.0 and 1.1. As of 2021 the current version (10.6) conforms with the W3C Recommendations for XSLT 3.0, XPath 3.1, and XQuery 3.1. The Saxon source code is written in Java. During 2005 6 M., David Peterson and others demonstrated that Saxon could be cross compiled to run on NET using the IKVM. NET cross compiler, launching Saxon. NET as a separate product independent of the original developer. With the release of Saxon 8.7, Saxonica adopted this technology and from that release onwards, all versions have been released simultaneously for Java and NET. The NET version of the product omits features that are specific to the Java platform (such as integration with JDOM, Dom4j, and XOM) and instead provides features that integrate with the XML processing capabilities of the NET platform. In 2012, following a series of prototypes, Saxonica released Saxon Client Edition (Saxon CE), a version of the product adapted to run within the browser environment. This is achieved by adapting the Java source code so that it can be cross compiled to JavaScript using the GWT cross compiler produced by Google. Saxon CE provides the first implementation of XSLT 2.0 running on the browser, and also extends the language so that rather than merely generating HTML, it can directly handle user interaction. With the release of Saxon CE 1.1 in February 2013, the product became open source. In February 2016 Michael Kay announced that Saxonica was working on a replacement for Saxon CE written in pure JavaScript, and dubbed Saxon JS. Michael Kay, the author of Saxon, was the editor of the XSLT 2.0 specification and is also editor of the XSLT 3.0 draft.
Ерекшеліктері
Java, C (оның ішінде PHP және Python) және NET платформалары үшін қол жетімді Saxon нұсқалары бір код базасынан құрылған. Соңғы нұсқа транспайлер арқылы жасалады. Барлық технологиялық платформа нұсқалары бірдей мүмкіндіктерге ие және олар екі түрлі лицензиялық шарт бойынша үш түрлі мүмкіндіктер жиынтығымен қолжетімді. Осы технологиялық платформалардың әрқайсысы үшін MPL 2.0 лицензиясымен ашық бастапқы коды бар Saxon HE өнімі бар. Ол тиісті ерекшеліктерде анықталғандай, негізгі XSLT 3.0, XPath 3.1 және XQuery 3.1 функционалдығын қамтамасыз етеді. Сонымен қатар, Saxon HE XSLT 3.0 спецификациясында міндетті емес деп жарияланған және бұрын коммерциялық нұсқаларға арналған, мысалы, динамикалық XPath 3.1 бағалау және XSLT 3.0-да жоғары деңгейдегі функциялар сияқты кейбір мүмкіндіктерді іске асырады. Коммерциялық нұсқалары Saxon PE және Saxon EE деп аталады. Saxonica веб-сайтында толық және жаңартылған мүмкіндіктер матрицасын табуға болады. Төртінші технологиялық платформа – JavaScript. Бұрын ашық кодты XSLT процессоры Saxon CE, GWT-ні пайдаланып, жалпы Java көзінен кросс-компилирленген. SaxonJS – JavaScript-те жаңадан құрылған бағдарлама. XSLT көздерін Saxon EE немесе XSLT негізіндегі XSLT компиляторы арқылы құрастыруға болады, ол аз оңтайландырылған кодты жасайды. Екінші жағынан, XSLT негізіндегі XSLT компиляторы XSLT-ті динамикалық түрде компиляциялауға және орындауға мүмкіндік береді. SaxonJS, Saxon HE-де қолжетімді XSLT 3.0 және XPath 3.1 мүмкіндіктерінің көп бөлігін қолдайды, бірақ XQuery-ді қолдамайды. Saxon HE және тоқтатылған Saxon CE-ден айырмашылығы, SaxonJS ашық кодты емес, бірақ оны браузерде немесе Node.js-те тегін пайдалануға болады.
The Saxon versions that are available for the Java, C (including PHP and Python), and NET platforms are built from a single codebase. The latter version is built using a transpiler. All technology platform versions share the same capabilities, and they are made available with three different feature sets under two different licensing conditions. For each of these technology platforms, there is an open source product, Saxon HE, that is licensed under MPL 2.0. It provides basic XSLT 3.0, XPath 3.1, and XQuery 3.1 functionality, as defined by the respective specifications. In addition, Saxon HE implements certain features that the XSLT 3.0 specification declares as optional and that were previously reserved for the commercial versions, such as dynamic XPath 3.1 evaluation and higher order functions in XSLT 3.0. The commercial versions are called Saxon PE and Saxon EE. A detailed and up to date feature matrix can be found on the Saxonica web site. The fourth technology platform is JavaScript. Previously the open source XSLT processor Saxon CE was cross compiled from the common Java source using GWT. SaxonJS is a completely new implementation in JavaScript. The XSLT sources can either be compiled using Saxon EE or using a built in XSLT based XSLT compiler, which creates less optimized code. On the other hand, the XSLT based XSLT compiler allows dynamic compilation and execution of XSLT. While SaxonJS supports most of the XSLT 3.0 and XPath 3.1 features available in Saxon HE, SaxonJS does not support XQuery. In contrast to Saxon HE and the discontinued Saxon CE, SaxonJS is not open source, but it can be used for free in the browser or in Node. js.