Tag: xml

元素类型“META”必须由匹配的结束标记“”终止

当我尝试使用Java解析XML文件(在GAE服务器中)时,我有时会遇到以下错误: Parse: org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 3; The element type “META” must be terminated by the matching end-tag “”. 然而它并没有一直发生,有时它的工作正常。 该程序解析xml文件,我没有问题。 这是我试图解析的XML文件: http : //www.fulhamchronicle.co.uk/london-chelsea-fc/rss.xml 任何帮助将不胜感激。 谢谢。 更新: 谢谢你的回答。 我将我的代码更改为另一个解析器,以及该文件正在正确解析的好消息。 它现在为另一个饲料转移同样的问题,尽管完全不同的饲料,但它之前的工作完全不同。 谁能想到为什么会这样?

使用JAXB生成的XML中的重复字段

这是我的情景。 我有一个通用类: public class Tuple extends ArrayList { //… public Tuple(T …members) { this(Arrays.asList(members)); } @XmlElementWrapper(name = “tuple”) @XmlElement(name = “value”) public List getList() { return this; } } 和一个儿童class: public class StringTuple extends Tuple { public StringTuple(String …members) { super(members); } //explanation of why overriding this method soon … @XmlElementWrapper(name = “tuple”) @XmlElement(name = […]

为什么getElementsByTagNameNS在java中为空?

我想得到tag2的值,我得到了一个xml: String xml = “” + “” + “” + ” value” + “” + “”; 然后将其解析为文档,并希望通过tagnameNS获取元素。 但是当我运行这个时,nodelist为空为什么? DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); docBuilderFactory.setNamespaceAware(true); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); Document doc = docBuilder.parse(new InputSource(new StringReader(xml))); NodeList nl = doc.getElementsByTagNameNS(“http://example.com”, “tag2”); String a = nl.item(0).getNodeValue(); 仍然无法使用URI。

使用Java中的Xerces对XSD 1.1进行XMLvalidation

我已经通过Maven安装了Xerces: junit junit 4.11 test org.jdom jdom 2.0.2 xerces xercesImpl 2.11.0 然后,我尝试使用Xerces FAQ中的此示例中给出的代码,根据1.1版中的模式validationXML文件。 这是我的代码: private static void validateFile(File xmlFile, File xsdFile) throws SAXException, IOException { // 1. Lookup a factory for the W3C XML Schema language SchemaFactory factory = SchemaFactory.newInstance(“http://www.w3.org/XML/XMLSchema/v1.1”); // 2. Compile the schema. File schemaLocation = xsdFile; Schema schema = factory.newSchema(schemaLocation); // 3. […]

如何在Java中使用XPath获取属性值?

我使用XPath解析下面的XML: test name1 test name2 test name3 我想根据我传递的ID从xml文档中获取“名称”,但是我无法获得所需的数据,而是查询返回空白。 XPathExpression expr = xpath.compile(“/schema/element[@id=’name_id_2′]/name/text()”);

导致SAXException2的原因:“com.foo.Bar”的实例替换为“java.lang.Object”,但“com.foo.Bar”绑定到匿名类型

将现有的jaxb(使用jaxb1.0.1和jaxb 2.0.5)应用程序(在带有jdk5的JBoss 4.3上)迁移到jaxb 2.1.10(随jdk6提供,更新jdk1.6.0_30)。 我无法修改客户提供的架构。 我已经从Sun RI删除了jaxws20,jwsdp,jaxp和jaxb jar的所有引用,并且仅使用jdk 6提供的jar。 任何指针? Caused by: com.sun.istack.SAXException2: Instance of “com.foo.Bar” is substituting “java.lang.Object”, but “com.foo.Bar” is bound to an anonymous type com.foo.Bar@a2e3ss at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:247) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:662) at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:165) at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:152) at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:332) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:698) at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:152) at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:332) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:592) at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:320) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:493) at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:325)

JAXB XML Adapters通过注释工作,但不通过setAdapter工作

我理解如何使用XMLAdapter 转换不可映射的类型 ,或者仅仅更改某些对象如何序列化/反序列化为XML。 如果我使用注释(包级别或其他),一切都很好。 问题是我试图改变第三方对象的表示,我无法将源代码更改为(即为了注入注释)。 考虑到Marshaller对象有一个手动添加适配器的方法,这应该不是问题。 不幸的是,无论我做什么,我都无法通过这种方式设置适配器来“启动”。 例如,我有一个表示XYZ空间中的点的类(地心坐标)。 在我生成的XML中,我希望将其转换为lat / long / altitude(大地坐标)。 这是我的课程: 地心 package testJaxb; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class GeocentricCoordinate { // Units are in meters; see http://en.wikipedia.org/wiki/Geocentric_coordinates private double x; private double y; private double z; @XmlAttribute public double getX() { return x; } public void setX(double x) { […]

解析生命周期处理指令时出错

下面是我的pom.xml文件。 在第一行,我收到错误 解析生命周期处理指令时出错。 我需要帮助找到导致错误的原因。 4.0.0 com.example demo 0.0.1-SNAPSHOT jar First Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 1.2.4.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-maven-plugin spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false

JAXB以不同的方式将XML封送到OutputStream和StringWriter

我很抱歉,如果这已经得到解答,但我一直在使用的搜索术语(即JAXB @XmlAttribute压缩或JAXB XML编组到String不同的结果 )没有提出任何建议。 我正在使用JAXB取消/编组使用@XmlElement和@XmlAttribute注释注释的对象。 我有一个格式化程序类,它提供了两个方法 – 一个包装marshal方法并接受对象编组和一个OutputStream ,另一个只接受对象并将XML输出作为String返回。 不幸的是,这些方法不能为相同的对象提供相同的输出。 封送到文件时,内部标有@XmlAttribute简单对象字段打印为: 当编组到一个字符串时,它们是: 我更倾向于两种情况的第二种格式,但我很好奇如何控制差异,并且无论如何都会满足于它们。 我甚至创建了一个静态编组器,两种方法都使用它来消除不同的实例值。 格式代码如下: /** Marker interface for classes which are listed in jaxb.index */ public interface Marshalable {} /** Local exception class */ public class XMLMarshalException extends BaseException {} /** Class which un/marshals objects to XML */ public class XmlFormatter { private static […]

禁用特定Java包的所有checkstyle检查

我有两个包 COM / MYDOMAIN / ABC /代表/ XYZ / JAXWS /管理 和com/mydomain/abc/xyz/jaxws/managed 我要求仅为第二个包禁用checkstyle,因为它们包含自动生成的代理类。 我使用了抑制文件夹,如下所示 请注意,禁用JavadocPackage检查的第一个禁止工作正常,但第二个禁止。 我担心我选择包的正则表达可能是错误的。 任何帮助深表感谢。 用一个例子说明我的要求: 选择的标准是包名称应以jaxws.managed结尾,但不应包含包名称中的delegate 。 更多jaxws.managed应该在包名称中的jaxws.managed之前jaxws.managed : 例如:必须启用com.mycomany.delegate.service.jaxws.managed包中的checktyle检查,同时必须禁用com.mycomany.delegate.service.jaxws.managed checktyle检查,并且要注意我不知道所有的除了这种模式之外,pakages预先提名。 谢谢,并问候Sibi