CINXE.COM

XSpec v3.1.2 Released

<!DOCTYPE html> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>XSpec v3.1.2 Released</title> <meta name="description" content="Announcing the release of XSpec v3.1.2"/> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="icon" type="image/x-icon" href="/static/favicon.ico"/> <link rel="stylesheet" href="/static/CACHE/css/output.7ac6b21eee6a.css" type="text/css"> <link href="https://fonts.googleapis.com/css?family=Lato|Roboto" rel="stylesheet"/> <link rel="stylesheet" type="text/css" href="/static/css/print.css" media="print" /> <script async src="https://www.googletagmanager.com/gtag/js?id=G-6Z87ZDEY5E"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-6Z87ZDEY5E'); </script> <script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script> <script> var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; </script> <script> googletag.cmd.push(function() { googletag.defineSlot('/21754636678/xml.com-1', [[160, 600], [120, 240], [300, 250]], 'div-gpt-ad-1550450394815-0').addService(googletag.pubads()); googletag.defineSlot('/21754636678/xml.com-2', [[300, 250]], 'div-gpt-ad-1550513522284-0').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.pubads().disableInitialLoad(); googletag.enableServices(); }); </script> <script> //load the apstag.js library !function(a9,a,p,s,t,A,g){if(a[a9])return;function q(c,r){a[a9]._Q.push([c,r])}a[a9]={init:function(){q("i",arguments)},fetchBids:function(){q("f",arguments)},setDisplayBids:function(){},targetingKeys:function(){return[]},_Q:[]};A=p.createElement(s);A.async=!0;A.src=t;g=p.getElementsByTagName(s)[0];g.parentNode.insertBefore(A,g)}("apstag",window,document,"script","//c.amazon-adsystem.com/aax2/apstag.js"); //initialize the apstag.js library on the page to allow bidding apstag.init({ pubID: '32676f4f-8458-484f-b742-dcd7ad80a504', //enter your pub ID here as shown above, it must within quotes adServer: 'googletag' }); apstag.fetchBids({ slots: [{ slotID: 'div-gpt-ad-1550450394815-0', //example: 'div-gpt-ad-1475102693815-0' slotName: '21754636678/xml.com-1', //example: '12345/box-1' sizes: [[160,600], [300,250], [120,400]] //example: [[300,250], [300,600]] }, { slotID: 'div-gpt-ad-1550513522284-0', //example: 'div-gpt-ad-1475185990716-0' slotName: '21754636678/xml.com-2', //example: '12345/leaderboard-1' sizes: [[300,250]] //example: [[728,90]] }], timeout: 2e3 }, function(bids) { // set apstag targeting on googletag, then trigger the first DFP request in googletag's disableInitialLoad integration googletag.cmd.push(function(){ apstag.setDisplayBids(); googletag.pubads().refresh(); }); }); </script> </head> <body class=""> <div class="title-bar hide-for-print" data-responsive-toggle="menu" data-hide-for="large"> <button class="menu-icon" type="button" value="Menu" data-toggle></button> <div class="title-bar-title">XML.com</div> </div> <div class="row"> <div class="top-bar hide-for-print" id="menu"> <div class="top-bar-left"> <a href="/"><img src="/static/img/XML_com_logo.svg" alt="XML.com logo"/></a> </div> <div class="top-bar-right"> <ul class="menu vertical medium-horizontal" data-responsive-menu="drilldown medium-dropdown" role="menubar"> <li class=""><a href="/">Home</a></li> <li class=" "> <a href="/articles/">Articles</a> </li> <li class=" "> <a href="/authors/">Authors</a> </li> <li class=" "> <a href="/news/">News</a> </li> <li class=" "> <a href="/job-board/">Job Board</a> </li> <li class="has-submenu "> <a href="/about/">About</a> <ul class="submenu menu vertical"> <li class=""> <a href="/about/contribute/">Contribute</a> </li> <li class=""> <a href="/about/style-guide/">Style guide</a> </li> <li class=""> <a href="/about/copyright/">Copyright</a> </li> <li class=""> <a href="/about/contact/">Contact</a> </li> <li class=""> <a href="/about/privacy/">Privacy Policy</a> </li> </ul> </li> <li class="has-form" style="background: transparent;"> <form id="cse-search-box" action="https://google.com/cse"> <input type="hidden" name="cx" value="partner-pub-9264479583913780:3063344556"/> <input type="hidden" name="ie" value="UTF-8" /> <input type="text" placeholder="Search" name="q" title="Google Search"/> <!--<input type="submit" name="sa" value="Search">--> </form> </li> </ul> </div> </div> </div> <div class="row"> <div class="medium-9 columns"> <nav aria-label="You are here:" role="navigation"> <ul class="breadcrumbs"> <li><a href="/">Home</a></li> <li><a href="/news/">News</a></li> <li class="current">XSpec v3.1.2 Released</li> </ul> </nav> <div id="content"> <div class="medium-12 columns" role="content"> <ul class="share-buttons hide-for-print"> <li> <a class="button tiny radius facebook" href="http://www.facebook.com/sharer.php?u=/news/2024-09-xspec-v312/" target="_blank"><i class="fa fa-facebook"></i>Share on Facebook</a> </li> <li> <a class="button tiny radius twitter" href="https://twitter.com/share?url=/news/2024-09-xspec-v312/"><i class="fa fa-twitter"></i>Tweet</a> </li> <li> <a class="button tiny radius linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=/news/2024-09-xspec-v312/" target="_blank"><i class="fa fa-linkedin"></i>LinkedIn</a> </li> <li> <a class="button tiny radius mail" href="mailto:?subject=XSpec v3.1.2 Released&amp;body=/news/2024-09-xspec-v312/" target="_blank"><i class="fa fa-envelope"></i>Email</a> </li> <li> <a class="button tiny radius print" href="javascript:window.print()" target="_blank"><i class="fa fa-print"></i>Print</a> </li> </ul> <article class="article"> <div class="callout small"> <h1>XSpec v3.1.2 Released</h1> <p>September 30, 2024</p> <p>Submitted by <em>Amanda Galtman</em>.</p> <div id="tags" class="hide-for-print"> <a class="fancy radius button small" href="/news/?tag=xslt">xslt</a> <a class="fancy radius button small" href="/news/?tag=xquery">xquery</a> <a class="fancy radius button small" href="/news/?tag=unit test">unit test</a> <a class="fancy radius button small" href="/news/?tag=bdd">bdd</a> <a class="fancy radius button small" href="/news/?tag=xspec">xspec</a> <a class="fancy radius button small" href="/news/?tag=testing">testing</a> <a class="fancy radius button small" href="/news/?tag=schematron">schematron</a> </div> </div> <div class="body"> <p>We are pleased to announce the release of XSpec v3.1.2, the open source unit test and behaviour-driven development framework for XSLT, XQuery, and Schematron.</p> <p>You can get the latest release of XSpec and read the release notes on <a href="https://github.com/xspec/xspec/releases/tag/v3.1.2">GitHub</a>.</p> <p>These are the highlights:</p> <h2>Common to Languages Under Test</h2> <ul> <li>XSpec is tested with Saxon 12.5, except that the detailed contents of XSLT code coverage reports are tested with Saxon 12.4.</li> <li>The XSpec schemas enforce the boolean values for the <code>x:expand-text</code> attribute and provide a Schematron Quick Fix for <code>expand-text</code> attributes on non-XSpec elements.</li> </ul> <h2>XSLT</h2> <ul> <li>XSLT code coverage reports have many bug fixes.</li> <li>XSLT code coverage reports include a new coverage status of &quot;unknown&quot; for situations where XSpec has insufficient data to judge whether a node was hit or missed. Some instances of hit/miss/unknown determinations differ based on the Saxon version used for generating the report. While both Saxon 12.4 and 12.5 are supported, 12.4 is currently preferred for coverage reporting.</li> </ul> <h2>XQuery</h2> <ul> <li>XSpec is tested with BaseX 11.3.</li> </ul> <h2>Schematron</h2> <ul> <li>SchXslt 1.10 replaces SchXslt 1.9.5 as the built-in Schematron implementation.</li> </ul> <p>Many thanks to all the XSpec contributors who made this release possible! They are listed in the <a href="https://github.com/xspec/xspec/releases/tag/v3.1.2">release notes</a>.</p> <p>聽</p> </div> </article> <div class="row"> <div class="callout small"> <h2>Related links</h2> <ul> <li><a href="/news/2024-04-xspec-v303/">XSpec v3.0.3 Released</a></li> <li><a href="/news/2023-10-xspec-v232/">XSpec v2.3.2 Released</a></li> <li><a href="/articles/2017/03/15/what-xspec/">What is XSpec?</a></li> </ul> </div> </div> <hr> <p>News items may be commercial in nature and are published as received.</p> </div> </div><!-- content --> </div> <aside id="sidebar" class="medium-3 columns hide-for-print"> <div class="text-center"> <!-- /21754636678/xml.com-1 --> <div id='div-gpt-ad-1550450394815-0'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1550450394815-0'); }); </script> </div> </div> <div class="text-center"> <!-- /21754636678/xml.com-2 --> <div id='div-gpt-ad-1550513522284-0' style='height:250px; width:300px;'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1550513522284-0'); }); </script> </div> </div> </aside> </div> <div class="row column"> <hr class="dotted"/> </div> <footer class="row column"> <p><strong>&#169; Textuality Services, Inc.</strong> except for those articles with named authors or copyright holders. All trademarks and registered trademarks appearing on XML.com are the property of their respective owners.</p> </footer> <script src="/static/CACHE/js/output.d5b0ccff8392.js"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10