小编pot*_*ame的帖子

配置Sonar以从Maven pom.xml中排除文件

我有一个在maven中配置的项目,代码分析由SonarQube完成.

我正在尝试在pom.xml文件中配置SonarQube以从代码分析中排除一些文件.这些文件可以通过它们的类名来标识,它们在扩展名之前包含下划线字符(它们是元模型类).下面我给出了我尝试排除它们的pom.xml文件的一部分:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <sonar.sources>src/main/java</sonar.sources>
        <sonar.exclusions>file:**/src/main/java/**/*_.*</sonar.exclusions>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

但是,上面的代码不起作用.有没有办法从我的pom.xml文件配置SonarQube以在分析源代码时忽略这些文件?

先感谢您.

java xml maven sonarqube

33
推荐指数
3
解决办法
6万
查看次数

XSLT文档功能在chrome中不起作用

我正在尝试使用Javascript转换XSLT并试图让它在Chrome和IE上运行.输入页面是a.html.它在IE中工作正常(原生/兼容模式)但在Chrome中无法正常工作,即下拉菜单不是通过选项创建的.

但是,在chrome中,如果我打开data.xml它有:

<?xml-stylesheet type="text/xsl" href="render.xslt" ?>
Run Code Online (Sandbox Code Playgroud)

直接在铬,它转换完美.但是,如果我尝试使用XSLTProcessor来做同样的事情,它就不起作用了.具体来说,该document功能不起作用.能否请你帮忙?

我的代码如下.

使用Javascript:

var MSXML2_DOMDocument_6 = "MSXML2.DOMDocument.6.0";
function tranform(xml, xsl) {
    if (window.ActiveXObject || "ActiveXObject" in window) {
        var xmlSerializer = new XMLSerializer();
        var xmlString = xmlSerializer.serializeToString(xml);
        var xslString = xmlSerializer.serializeToString(xsl);

        var xsl = new ActiveXObject(MSXML2_DOMDocument_6);
        xsl.setProperty("AllowXsltScript", true);
        xsl.setProperty("AllowDocumentFunction", true);
        xsl.resolveExternals = true;
        xsl.async = false;
        xsl.loadXML(xslString);

        var xml = new ActiveXObject(MSXML2_DOMDocument_6);
        xml.resolveExternals = true;
        xml.preserveWhiteSpace = true;
        xml.async = false;
        xml.loadXML(xmlString);
        xml.resolveExternals = true;

        ex = xml.transformNode(xsl); …
Run Code Online (Sandbox Code Playgroud)

xml xslt google-chrome

13
推荐指数
1
解决办法
1137
查看次数

将xml节点/文档/片段作为参数传递给xslt

我试图传递一个w3c.dom.Document,ElementNodeList作为参数传递给xslt变换.

我希望能够在xslt中处理它:

<xsl:param name="links" />
<xsl:template match="/">
    <record>
        <xsl:for-each select="$links/*">
            <test />
        </xsl:for-each>
    </record>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

我将参数传递为:

        Document params = createLinksParams(links);
        transformer.setParameter("links", params);
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

'从'com.sun.org.apache.xerces.internal.dom.DocumentImpl'到'node-set'的转换无效.'

我也试过exslt:node-set(),xalan:nodeset()等等,但它不工作.

似乎内部xalan除了他自己的Node实现.

如何在不引发此问题的情况下做类似的事情?

我无法使用,document($param)因为我在运行中构建了doc.

java xalan

7
推荐指数
1
解决办法
8007
查看次数

如何从另一个文件运行xsl时获取所需的基本URI?

当我使用XSpec运行我的测试时,会出现一个明显的问题:全局变量的基URI设置为运行我的XSLT的xspec父级而不是XML输入本身.

因此,当我的XSL转换本身针对XML运行时,一切都很好,全局变量正在选择它们应该是什么:输入XML中的元素.

但是,当它通过XSpec运行时,基URI被设置为XSpec本身 - 可能是因为XSLT规范将基URI定义为:

如果元素或处理指令出现在外部实体中,则该元素或处理指令的基URI是外部实体的URI; 否则,基URI是文档的基URI.

这对我来说是个问题.我已经尝试xml:base在变量和xsl:stylesheet:上使用该属性,但这似乎不影响基URI; 它只会受到影响fn:static-base-uri().此外,static-base-uri()总是返回我想要的正确的URI - 所以我希望该值以某种方式成为我的全局变量的基本URI.

一旦我将变量移动到模板中并且它们变为本地变量,它们的基URI就可以了.但是,这将打败我使用变量的整个过程,而这并不是重复选择调用.

关于如何解决这个问题的任何提示?

我正在使用带有SAXON EE 9.4.0.6(&HE版)的XSLT 2.0.


更新1

我已经做了一些调查,似乎XSpec以这种方式调用了Saxon:

java -cp "%CP%" net.sf.saxon.Transform -o:%RESULT% -s:%XSPEC% -xsl:%TEST_STYLESHEET% -it:{http://www.jenitennison.com/xslt/xspec}main

这意味着源XML文件-s是.xspec样式表本身.如果它必须提供一些 XML数据才能使转换工作,这是有道理的,但在这种情况下,转换本身会导入它通过的XML数据fn:doc()- 不幸的是在我的xsl的全局级别中,基础uri是错误的而不是设置为导入的文档,但设置为xspec样式表.

因此,作为测试,我将Saxon -s标志设置为XML输入文档和tada - 基本URI现在是正确的.但这意味着我不能在xspec中使用任何其他xml,因此不是一个非常可行的解决方案.


更新2

鉴于迈克尔凯的更多反馈(谢谢!),我附上了我正在使用的最小测试用例.您还需要下载XSpec 0.4-rc1,但这不是必需的.

一旦你有了XSpec,如果你在Windows上,需要编辑xspec-0.4.0rc1/bin/xspec.bat以指向第3行的Saxon jar.

否则,运行它,你做xspec.bat .\DCM2EA.xspec.

理想情况下,输出中全局的基URI将指向NEHTA-00009-Adverse_Reaction-Structure (sample data).xml.现在,它没有 - 它指向.xspec.这直接受到-s:%XSPEC%第73行的xspec.bat的影响.

xspec的工作方式是它在x2pec/DCM2EA.xsl中给出DCM2EA.xspec及其自己的测试创建中间转换并运行该转换(这就是为什么XSpec在这种情况下是可选的,你可以运行xspec - 坏属性名称/ xspec/DCM2EA.xsl直接).

我遇到的问题是base-uri()在原始DCM2EA.xsl的全局上下文中设置为xspec文件,这是错误的.该base-uri()内部模板设置罚款(如你看到 …

xslt xslt-2.0 xspec

5
推荐指数
1
解决办法
1438
查看次数

当事务只读取数据时,我应该避免使用注释@Transactional吗?

我已经从旧式的事务管理迁移TransactionProxyFactoryBean到Spring推荐的声明式事务管理,以避免出现不时出现的事务的异常.

对于交易save update delete我添加了注释:

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)

它对我有用.

问题是:

@Transactional当事务只读取数据时,我应该避免使用注释吗?

例:

public TradeData getTrade(long tradeId) throws Exception {
   return em.find(TradeData.class, tradeId);
}
Run Code Online (Sandbox Code Playgroud)

看完这篇文章后说:

"更好的是,@Transactional在执行读取操作时完全避免使用注释,如清单10所示:"

我有点困惑,我不太明白.

java spring hibernate transactions spring-transactions

3
推荐指数
2
解决办法
214
查看次数

xsl:fo 检索标记不是有效的子项

我需要<fo:retrieve-marker>在表中进行 xsl:fo 转换,但我不知道这是否可行,因为我使用 FOP 处理器进行转换。

如果我在表中使用,<fo:retrieve-marker>我总是收到一条错误消息,指出标签必须位于静态内容中。

这是带有标记的表格

                <xsl:call-template name="MMEL-Table-Header"/>

                <!-- Bottom table Line  -->
                <fo:table-footer>
                    <fo:table-row>
                        <fo:table-cell>                                                                             
                            <fo:marker marker-class-name="footer-continued"> <fo:inline>(continued)</fo:inline></fo:marker>
                        </fo:table-cell>
                    </fo:table-row>

                </fo:table-footer>

                <fo:table-body >               

                    <xsl:variable name="identification">
                        <xsl:value-of select="ident/message"/>                                 
                    </xsl:variable>                       
                    <xsl:apply-templates select="ident"><xsl:with-param name="ident" select="$identification"/></xsl:apply-templates>
                    <xsl:apply-templates select="provisos/proviso"><xsl:with-param name="ident" select="$identification"/></xsl:apply-templates>

                <fo:table-row>
                    <fo:table-cell> <fo:retrieve-marker retrieve-position="first-starting-within-page" retrieve-class-name="footer-continued" retrieve-boundary="document" /> </fo:table-cell>
                </fo:table-row>
                </fo:table-body>           
            </fo:table>          
Run Code Online (Sandbox Code Playgroud)

xml pdf-generation xsl-fo marker

2
推荐指数
1
解决办法
2331
查看次数

将新的XML节点保存到文件

我正在尝试保存nodeList包含XML为新文件的节点,这里是获取新XML文档并拆分为较小的节点列表XMLs:

public void split(Document inDocument) throws ParserConfigurationException,
            SAXException, IOException {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        SaveXML savePerJob = new SaveXML();
        // Load the input XML document, parse it and return an instance of the
        // Document class.
        Document document = inDocument;
        //all elements
        //jobs
        NodeList nodes = document.getDocumentElement().getChildNodes();
        NodeList jobs = nodes.item(7).getChildNodes();
        for(int j =0; j<jobs.getLength(); j++){
            Node itm = jobs.item(j);
            String itmName = itm.getFirstChild().getNodeName();
            String itmID = itm.getFirstChild().getTextContent(); …
Run Code Online (Sandbox Code Playgroud)

java xml dom nodelist

2
推荐指数
1
解决办法
4366
查看次数

Marklogic - 如何在XQuery中删除新的行char问题

如何删除新行字符.

Sample Code.

    let $b := <root><title>Fees • Levies<?brk type="line"?>
    Other file</title></root>
    return replace($b//title/text(),'\n','')

Expected Output :
Fees • Levies Other file
Run Code Online (Sandbox Code Playgroud)

xquery marklogic

1
推荐指数
1
解决办法
427
查看次数