- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中com.sun.xml.bind.v2.runtime.XMLSerializer
类的一些代码示例,展示了XMLSerializer
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XMLSerializer
类的具体详情如下:
包路径:com.sun.xml.bind.v2.runtime.XMLSerializer
类名称:XMLSerializer
[英]Receives XML serialization event and writes to XmlOutput.
This object coordinates the overall marshalling efforts across different content-tree objects and different target formats.
The following CFG gives the proper sequence of method invocation.
MARSHALLING := ELEMENT
ELEMENT := "startElement" NSDECL* "endNamespaceDecls"
ATTRIBUTE* "endAttributes" BODY "endElement"
NSDECL := "declareNamespace"
ATTRIBUTE := "attribute"
ATTVALUES := "text"
BODY := ( "text" | ELEMENT )
A marshalling of one element consists of two stages. The first stage is for marshalling attributes and collecting namespace declarations. The second stage is for marshalling characters/child elements of that element.
Observe that multiple invocation of "text" is allowed.
Also observe that the namespace declarations are allowed only between "startElement" and "endAttributes".
Exceptions in marshaller
IOException, SAXException, and XMLStreamExceptionare thrown from XmlOutput. They are always considered fatal, and therefore caught only by MarshallerImpl.
AccessorException can be thrown when an access to a property/field fails, and this is considered as a recoverable error, so it's caught everywhere.
[中]接收XML序列化事件并写入XmlOutput。
该对象协调跨不同内容树对象和不同目标格式的总体编组工作。
下面的CFG给出了方法调用的正确顺序。
MARSHALLING := ELEMENT
ELEMENT := "startElement" NSDECL* "endNamespaceDecls"
ATTRIBUTE* "endAttributes" BODY "endElement"
NSDECL := "declareNamespace"
ATTRIBUTE := "attribute"
ATTVALUES := "text"
BODY := ( "text" | ELEMENT )
一个元素的编组包括两个阶段。第一阶段是编组属性和收集命名空间声明。第二阶段用于编组该元素的字符/子元素。
请注意,允许多次调用“文本”。
还要注意,名称空间声明只允许在“startElement”和“endAttributes”之间使用。
马歇尔的例外
从XmlOutput抛出IOException、SAXException和XMLStreamExceptionary。它们通常被认为是致命的,因此只有马歇尔·雷普勒才能捕捉到它们。
当对属性/字段的访问失败时,可以抛出AccessorException,这被认为是一个可恢复的错误,因此它到处都会被捕获。
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
public void serializeURIs(BeanT bean, XMLSerializer target) throws SAXException {
try {
if (retainPropertyInfo) {
final Property parentProperty = target.getCurrentProperty();
for( Property<BeanT> p : uriProperties ) {
target.currentProperty.set(p);
p.serializeURIs(bean,target);
}
target.currentProperty.set(parentProperty);
} else {
for( Property<BeanT> p : uriProperties ) {
p.serializeURIs(bean,target);
}
}
if(inheritedAttWildcard!=null) {
Map<QName,String> map = inheritedAttWildcard.get(bean);
target.attWildcardAsURIs(map,null);
}
} catch (AccessorException e) {
target.reportError(null,e);
}
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
public Base64Data print(Image v) {
ByteArrayOutputStreamEx imageData = new ByteArrayOutputStreamEx();
XMLSerializer xs = XMLSerializer.getInstance();
String mimeType = xs.getXMIMEContentType();
if(mimeType==null || mimeType.startsWith("image/*"))
} else {
xs.handleEvent(new ValidationEventImpl(
ValidationEvent.ERROR,
Messages.NO_IMAGE_WRITER.format(mimeType),
xs.getCurrentLocation(null) ));
xs.handleError(e);
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
/**
* @param assoc
* non-null if the marshaller is working inside {@link BinderImpl}.
*/
public MarshallerImpl( JAXBContextImpl c, AssociationMap assoc ) {
context = c;
serializer = new XMLSerializer(this);
c14nSupport = context.c14nSupport;
try {
setEventHandler(this);
} catch (JAXBException e) {
throw new AssertionError(e); // impossible
}
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
public void serializeItem(JaxBeanInfo expected, ItemT item, XMLSerializer w) throws SAXException, IOException, XMLStreamException {
if(item==null) {
w.writeXsiNilTrue();
} else {
w.childAsXsiType(item,fieldName,expected, false);
}
}
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
public void marshal(T value, XMLSerializer out) throws IOException, SAXException, XMLStreamException {
out.startElement(tagName,null);
if(value==null) {
out.writeXsiNilTrue();
} else {
out.childAsXsiType(value,null,bi,false);
}
out.endElement();
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
@Override
public CharSequence print(V o) throws AccessorException {
XMLSerializer w = XMLSerializer.getInstance();
MimeType old = w.setExpectedMimeType(expectedMimeType);
try {
return core.print(o);
} finally {
w.setExpectedMimeType(old);
}
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
handleMissingObjectError(fieldName);
} else {
child = pushObject(child,fieldName);
if(child==null) { // error recovery
endNamespaceDecls(null);
endAttributes();
return;
fireBeforeMarshalEvents(actual, child);
actual = grammar.getBeanInfo(child,true);
if (actual.lookForLifecycleMethods()) {
fireBeforeMarshalEvents(actual, child);
reportError(fieldName,e);
endNamespaceDecls(null);
endAttributes();
return; // recover by ignore
actualTypeName = actual.getTypeName(child);
if(actualTypeName==null) {
reportError(new ValidationEventImpl(
ValidationEvent.ERROR,
Messages.SUBSTITUTED_BY_ANONYMOUS_TYPE.format(
child.getClass().getName(),
actual.jaxbType.getName()),
getCurrentLocation(fieldName)));
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
public final void serializeRoot(BeanT bean, XMLSerializer target) throws SAXException, IOException, XMLStreamException {
if(tagName==null) {
target.reportError(
new ValidationEventImpl(
ValidationEvent.ERROR,
Messages.UNABLE_TO_MARSHAL_NON_ELEMENT.format(bean.getClass().getName()),
null,
null));
}
else {
target.startElement(tagName,bean);
target.childAsSoleContent(bean,null);
target.endElement();
}
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
try {
prewrite(out, true, postInitAction);
serializer.startElement(rootTagName,null);
if(bi.jaxbType==Void.class || bi.jaxbType==void.class) {
serializer.endNamespaceDecls(null);
serializer.endAttributes();
} else { // normal cases
if(obj==null)
serializer.writeXsiNilTrue();
else
serializer.childAsXsiType(obj,"root",bi, false);
serializer.endElement();
postwrite();
} catch( SAXException e ) {
throw new MarshalException(e);
} finally {
serializer.close();
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
serializer.startElementForce(namespaceURI,localName,p,null);
else
serializer.startElement(namespaceURI,localName, p,null);
serializer.getNamespaceContext().force(
prefixMap.get(i + 1), prefixMap.get(i));
String prefix = getPrefix(qname);
serializer.getNamespaceContext().declareNamespace(
atts.getURI(i), prefix, true );
serializer.endNamespaceDecls(null);
serializer.attribute( atts.getURI(i), atts.getLocalName(i), atts.getValue(i));
serializer.endAttributes();
} catch (IOException e) {
throw new SAXException2(e);
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
/**
* Short for the following call sequence:
*
* <pre>
getNamespaceContext().declareNamespace(WellKnownNamespace.XML_SCHEMA_INSTANCE,"xsi",true);
endNamespaceDecls();
attribute(WellKnownNamespace.XML_SCHEMA_INSTANCE,"nil","true");
endAttributes();
* </pre>
*/
public final void writeXsiNilTrue() throws SAXException, IOException, XMLStreamException {
getNamespaceContext().declareNamespace(WellKnownNamespace.XML_SCHEMA_INSTANCE,"xsi",true);
endNamespaceDecls(null);
attribute(WellKnownNamespace.XML_SCHEMA_INSTANCE,"nil","true");
endAttributes();
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
public void serializeAttributes(BeanT bean, XMLSerializer target) throws SAXException, IOException, XMLStreamException {
for( AttributeProperty<BeanT> p : attributeProperties )
try {
if (retainPropertyInfo) {
final Property parentProperty = target.getCurrentProperty();
target.currentProperty.set(p);
p.serializeAttributes(bean,target);
target.currentProperty.set(parentProperty);
} else {
p.serializeAttributes(bean,target);
}
if (p.attName.equals(WellKnownNamespace.XML_SCHEMA_INSTANCE, "nil")) {
isNilIncluded = true;
}
} catch (AccessorException e) {
target.reportError(null,e);
}
try {
if(inheritedAttWildcard!=null) {
Map<QName,String> map = inheritedAttWildcard.get(bean);
target.attWildcardAsAttributes(map,null);
}
} catch (AccessorException e) {
target.reportError(null,e);
}
}
代码示例来源:origin: com.sun.jersey/jersey-json
private RuntimePropertyInfo getCurrentElementRuntimePropertyInfo() {
final XMLSerializer xs = XMLSerializer.getInstance();
final Property cp = (xs == null) ? null : xs.getCurrentProperty();
return (cp == null) ? null : cp.getInfo();
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
public String print(XMLGregorianCalendar cal) {
XMLSerializer xs = XMLSerializer.getInstance();
QName type = xs.getSchemaType();
if (type != null) {
try {
checkXmlGregorianCalendarFieldRef(type, cal);
String format = xmlGregorianCalendarFormatString.get(type);
if (format != null) {
return format(format, cal);
}
} catch (javax.xml.bind.MarshalException e) {
// see issue 649
xs.handleEvent(new ValidationEventImpl(ValidationEvent.WARNING, e.getMessage(),
xs.getCurrentLocation(null) ));
return "";
}
}
return cal.toXMLFormat();
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
private void prewrite(XmlOutput out, boolean fragment, Runnable postInitAction) throws IOException, SAXException, XMLStreamException {
serializer.startDocument(out,fragment,getSchemaLocation(),getNoNSSchemaLocation());
if(postInitAction!=null) postInitAction.run();
if(prefixMapper!=null) {
// be defensive as we work with the user's code
String[] decls = prefixMapper.getContextualNamespaceDecls();
if(decls!=null) { // defensive check
for( int i=0; i<decls.length; i+=2 ) {
String prefix = decls[i];
String nsUri = decls[i+1];
if(nsUri!=null && prefix!=null) // defensive check
serializer.addInscopeBinding(nsUri,prefix);
}
}
}
serializer.setPrefixMapper(prefixMapper);
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
public Base64Data print(Source v) {
XMLSerializer xs = XMLSerializer.getInstance();
Base64Data bd = new Base64Data();
String contentType = xs.getXMIMEContentType();
MimeType mt = null;
if(contentType!=null)
mt = new MimeType(contentType);
} catch (MimeTypeParseException e) {
xs.handleError(e);
Transformer tr = xs.getIdentityTransformer();
String defaultEncoding = tr.getOutputProperty(OutputKeys.ENCODING);
tr.setOutputProperty(OutputKeys.ENCODING, charset);
} catch (TransformerException e) {
xs.handleError(e);
} catch (UnsupportedEncodingException e) {
xs.handleError(e);
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
public String print(BeanT bean) throws AccessorException, SAXException {
TargetT target = acc.get(bean);
if(target==null) return null;
XMLSerializer w = XMLSerializer.getInstance();
try {
String id = w.grammar.getBeanInfo(target,true).getId(target,w);
if(id==null)
w.errorMissingId(target);
return id;
} catch (JAXBException e) {
w.reportError(null,e);
return null;
}
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
serializer.childAsRoot(obj);
postwrite();
} catch( SAXException e ) {
throw new MarshalException(e);
} finally {
serializer.close();
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
@Override
public @NotNull CharSequence print(@NotNull V o) throws AccessorException {
XMLSerializer w = XMLSerializer.getInstance();
boolean old = w.setInlineBinaryFlag(true);
try {
return core.print(o);
} finally {
w.setInlineBinaryFlag(old);
}
}
代码示例来源:origin: com.sun.xml.bind/jaxb-impl
public Base64Data print(byte[] v) {
XMLSerializer w = XMLSerializer.getInstance();
Base64Data bd = new Base64Data();
String mimeType = w.getXMIMEContentType();
bd.set(v,mimeType);
return bd;
}
});
COM 内存泄漏最常见的原因是什么? 我读过将初始化的 CComBSTR 的地址作为 [out] 参数传递给函数会导致泄漏。我正在寻找像这样枚举其他常见的编程错误。 最佳答案 未能为 COM 对象使用
在COM服务器执行过程中分配一 block 内存,然后通过一个输出参数将该内存块传递给客户端是很常见的。然后,客户端有义务使用 CoTaskMemFree() 等方法释放该内存。 问题是,这 bloc
我有一些 MFC 代码(自定义 CWnd 控件和一些要公开的类),我需要将它们制作成带有接口(interface)的 activex/COM 对象。使用 MFC 支持制作 ATL 项目并以这种方式制作
Devenv.com 是 visual studio 命令行界面,当您键入 devenv/? 时,devenv 的帮助会出现在控制台上。但是,如果没有任何选项,devenv.com 只会调用 deve
如何将 COM 接口(interface)的引用作为 COM 库中的参数传递? 这是示例: 1)客户端代码成功创建coclass并接收到pFunctionDiscovery中的接口(interface
我正在使用 django,我在 s3 中存储了诸如 imgs 之类的东西(为此我使用的是 boto),但最近我收到了这个错误: 'foo.bar.com.s3.amazonaws.com' doesn
我已经使用组件服务 MSC 对话框创建了一个 COM+ 应用程序。我将一个现有的 COM 对象导入到这个新的 COM+ 应用程序中。 我知道可以通过 COM+ 应用程序调用该 COM 对象。我可以简单
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我正在使用通过 COM Interop 包装器公开的第三方 dll。但是,其中一个 COM 调用经常卡住(至少从不返回)。为了至少让我的代码更健壮一些,我异步包装了调用(_getDeviceInfoW
很多年前我读到有一个简单的 php 脚本可以将您的网站重定向到 http://example.com/google.com 到 google.com它适用于正斜杠右侧的任何域。我忘记了这个脚本是什么或
我正在实现我的第一个进程外 COM 服务器(我的第一个 COM 服务器,就此而言)。我已经按照步骤编写了一个 IDL 文件,为代理/ stub DLL 生成代码,编译 DLL,并注册它。 当我检查注册
是否可以在未知接口(interface)上增加 RCW 引用计数? (即不是底层 COM 对象的引用计数) 我有一些旧的 COM 服务器代码 int Method1(object comobject)
我注意到许多关于 COM 的书籍等都指出,在 COM 聚合中实现一个可用作内部对象的对象相对容易。但是,除非我遗漏了什么,否则聚合似乎只能在极其有限的场景中成功,因此只有在明确识别出这种场景时才应提供
假设我正在开发一个安装 COM 组件并安装程序注册它们的应用程序。这很好用。 现在该软件需要从内存棒上运行。如何注册我的库运行时并确保在运行应用程序后清理注册表? 最佳答案 您总是在 XP 或更高版本
我们已经使用Microsoft的ActiveX/COM(VB6)技术开发了一个软件系统。去年,我对自动化构建过程和整个SCM越来越感兴趣。我集中搜索了网络的大部分内容,以获取有关如何使用基于COM的软
我对 com 线程模型有点困惑。 我有一个 inproc 服务器,我想创建一个可从任何线程访问的接口(interface),而不管 CoInitializeEx 中使用的线程模型和/或标志。 当将接口
我的包以旁加载方式安装,并不断遇到特定于应用程序的权限错误。 是的,许多人建议在 regedit 和组件服务中手动更改权限和所有者。 我的应用实际上在组件服务(DCOMCNFG、DCOMCNFG -3
我正在使用第三方应用程序,并调用创建 的实例。我的 COM 对象。这个调用成功了,但是第三方应用程序上的函数没有返回指向创建对象的指针(我不知道为什么)。有没有办法获得指向我的对象的指针? 为了澄清,
我有一个用 C# 编写的托管 COM 对象和一个用 C++(MFC 和 ATL)编写的 native COM 客户端和接收器。客户端创建对象并在启动时向其事件接口(interface)提供建议,并在其
我的应用程序需要注册两个 COM DLL。如果用户有必要的访问权限,它会自动完成,否则可以使用 regsvr32 完成。 . 现在在一些工作站上会发生以下情况: 开始cmd.exe作为管理员 注册第一
我是一名优秀的程序员,十分优秀!