无论如何在浏览器中在HTML中运行SVG时,是否将textInput或keypress(或实际上任何其他文本输入)事件附加到SVG元素?
我可以将一个eventhandler附加到document.documentElement,但是当我通过任何机制将一个eventhandler附加到anykind的SVGElement时没有任何反应... svg,g,rect ...
我从SVG规范中看到这不支持(W3 SVG事件列表),但是任何浏览器都支持任何"额外"吗?
我无法让以下内容在Chrome或Firefox上运行...
<!DOCTYPE HTML>
<html>
<head>
<title>Key event test</title>
<style type="text/css">
body,html {
margin: 0;
padding: 0;
height: 100%;
width: 100%;
background: #f00;
}
#main {
margin: 0;
padding: 0;
height: 100%;
width: 80%;
background: #0f0;
float: right;
}
#drawArea {
margin: 0;
padding: 0;
height: 100%;
width: 100%;
background: #ffffff;
}
#side {
margin: 0;
padding: 0;
height: 100%;
width: 20%;
background: #00f;
float: left;
}
</style>
<script type="text/javascript">
function createBoundEventHandler(el, name) …Run Code Online (Sandbox Code Playgroud) 使用JAX-WS-RI或Metro我可以使用com.sun.xml.ws.api.server.AsyncProvider接口编写WebService.
我可以选择获取整个消息,包括SOAP标头
import javax.xml.transform.Source;
import com.sun.xml.ws.api.server.AsyncProvider;
import com.sun.xml.ws.api.server.AsyncProviderCallback;
import javax.xml.ws.ServiceMode;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.WebServiceProvider;
@ServiceMode(value=Service.Mode.MESSAGE)
@WebServiceProvider()
public class AddNumbersAsynchImpl implements AsyncProvider<Source> {
...
Run Code Online (Sandbox Code Playgroud)
然后,我可以编写一些解析消息并相应处理的内容
public void invoke(Source source, AsyncProviderCallback<Source> cbak, WebServiceContext ctxt) {
DOMResult dom = new DOMResult();
Transformer trans = TransformerFactory.newInstance().newTransformer();
trans.transform(source, dom);
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(new MyNamespaceContext());
String opName = (String) xpath.evaluate("name(/S:Envelope/S:Body/X:*[1])", dom.getNode(), XPathConstants.STRING);
if(knownOp(opName)) {
doOp(opName, dom.getNode(), cbak);
}
else {
doFault("Unknown operation " + opName, cbak);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这样做的部分原因是使现有的基于XML的应用程序适应SOAP堆栈.应用程序为消息定义了一组完整的模式,并且很容易生成WSDL来定义服务.
对于小型XML消息,一切正常.
但是,如果我希望在一些消息笨重的操作中以更流的方式处理XML,我会遇到使用MTOM附件的两个问题.我按以下方式更改了我的提供商的设置;
import com.sun.xml.ws.api.message.Message;
import javax.xml.ws.soap.MTOM; …Run Code Online (Sandbox Code Playgroud) MOXy BeanValidation使我能够为我的JAXB类添加验证.
使用MOXy的"Bean Validation Plugin"我可以根据来自现有 Schema的限制/方面在生成的JAXB类中进行Bean Validation .
但是有没有办法根据来自JAXB注释的java类的 Bean Validation注释生成带有限制/方面的模式?
XJC在执行'schema first'生成java时有一个方便的插件架构,但有没有任何等效的'java first'方法来增强生成的XSD带有额外的限制,甚至添加XML注释?在MOXy或JAXB-RI中?
MOXy非常灵活,可以在中间映射中使用,可以在模式生成期间使用吗?
该JAXB刻面的项目似乎做我想要什么,但实施者不得不叉一个全新JAXB-RI在得到它,它似乎不会很快通过的任何时间.(见这个Java JIRA)
我尝试了@ m0mus指定的分辨率,但必须使用sonatype存储库中的2.7.0-SNAPSHOT版本.我还有几个问题; 1.我必须用@XmlElement注释java字段以使facet出现在xsd中.@XmlAttribute,@ XmlAccessorType(XmlAccessType.FIELD)没有任何区别.@Pattern没有用; 我不得不在Pattern.List中使用单个Pattern.
@XmlElement
@Pattern.List(value = { @Pattern(regexp="[0-9]*") })
public String phoneNumber2;
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅EclipseLink论坛