我有一个在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以在分析源代码时忽略这些文件?
先感谢您.
我正在尝试使用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) 我试图传递一个w3c.dom.Document
,Element
并NodeList
作为参数传递给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.
当我使用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()
内部模板设置罚款(如你看到 …
我已经从旧式的事务管理迁移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所示:"
我有点困惑,我不太明白.
我需要<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) 我正在尝试保存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) 如何删除新行字符.
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)