Tag: xsd

提取元素文本值

我正在使用JAXB生成用于将xml解组为java实体的代码,使用xsd文件进行原理图。 问题是生成的代码不会生成以下xml中指定的organization的name : Some organization’s name goes here 以下是Organization数据类型的xsd定义: 以下是ON数据类型的xsd定义: A name for an organization. A sequence of name parts. A set of codes advising a system or user which name in a set of like names to select for a given purpose. A name without specific use code might be a default name useful […]

将xml文档导入jaxb创建的实体结构中

我试图使用jaxb将xml文档导入由jaxb创建的实体结构中。 我下载了jaxb 2.2.7,并使用了该下载中包含的create-marshal示例,但我将po.xsd的内容po.xsd为以下内容: 然后我创建po.xml具有以下结构的po.xml ,该结构旨在匹配po.xsd : first document inner title 我将Main.java更改为以下forms,以便将po.xml导入到使用create-marshal示例build.xml文件从po.xsd创建的实体结构中: package mainpackage; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import primer.po.*; import java.io.*; public class Main { public static void main( String[] args ) { String filename = “C:\\Temp\\jaxb\\apps\\create-marshal\\po.xml”; InputStream is = getInputStream(filename); try { unmarshal(BusinessDocument.class, is);} catch (JAXBException e) {e.printStackTrace();} } public […]

xjc:覆盖xs:simpleType定义

我正在使用xjc编译一组XSD到Java类。 我希望能够覆盖给定简单类型的数据类型定义。 XSD代码段是: Can be specified as a integer number or as xs:dateTime 这导致(毫不奇怪) CPT-DateTime类型的元素在生成的Java类中定义为String ,例如 public class CcReportTrainInitialization { … @XmlElement(required = true) protected String time; … public String getTime() { return time; } public void setTime(String value) { this.time = value; } … 我想要的是时间的数据类型(在这个例子中)是特定于日期时间的类型,例如XMLGregorianCalendar或类似的东西: public class CcReportTrainInitialization { … @XmlElement(required = true) protected […]

如何解析可能有或没有命名空间的XML内容?

我需要解析一些我有XSD的XML内容。 总的来说,这是直截了当的。 但是,在一个特定情况下,XML有时包含XML命名空间,有时则不包含。 此外,要求XML命名空间并不实际,因为提供的XML来自多个来源。 所以我一直试图找到解决方法。 如上所述,我有XML的XSD,我使用XJC(来自JAXB)从XSD生成相应的XML实体类。 示例XML包括命名空间: value 不包含命名空间的示例XML: value 如您所见,XML内容在结构上是相同的 – 唯一的区别是root实体上的xmlxs属性。 我的代码如下: URI uri = DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); Node node = builder.parse(uri.toString()); // Parsing succeeds, ie. the XML is valid. JAXBContext context = JAXBContext.newInstance(“com.example.xml”); Unmarshaller parser = context.createUnmarshaller(); // Next line succeeds or fails, depending on presence of namespace Object object […]

JAX-WS和XSDvalidation

我有一个wsdl,它有一个导入的xsd,这个xsd有这样的限制: 因此,当我通过netbeans将这个耳朵部署到glassfish时,我会想到会对传入的数据进行validation,但事实并非如此。 是否需要进行任何调用以确保在将数据传递给我的@WebService对象并将其转换为Java对象之前validation数据。

从XML生成SQL模式

我们正在使用Oracle 11数据库和Java开发环境(使用Eclipse),并希望将多个xml架构迁移到SQL架构。 看过ax xsd,但确实需要一些我们可以在没有安装SQL Server的情况下从ant / Eclipse运行的东西。 问候, 安迪

将XML解析/反序列化为JavaObjects

我开始了一个小型的新项目,我想从XML反序列化对象。 我创建了一个xsd: http://pastebin.com/n1pwjRGX 和一个示例XML文件: 哪个应该使用xsd等。 那么我怎样才能将这些XML的反序列化转化为一个漂亮的Java对象结构呢? Mabe喜欢: class HDB { private HashMap map; } class Country { private List list; // or two Lists with and private List regions; } class Region{ private List list; // or two Lists with and } class variableHoliday { private String name; private int daysAfterEaster; } class fixedHoliday { […]

当Tomcat加载和读取beans.xml时,为什么没有正确加载Spring AOP XML模式

我正在尝试在Eclipse中使用Spring的基于模式的AOP支持 ,并且在尝试在Tomcat中加载配置时遇到错误。 Eclipse中没有错误,并且自动完成对aop命名空间正常工作,但是当我尝试将项目加载到eclipse时,我收到此错误: 09:17:59,515 WARN XmlBeanDefinitionReader:47 – 忽略的XMLvalidation警告org.xml.sax.SAXParseException:schema_reference.4:无法读取模式文档’http://www.springframework.org/schema/aop/spring-aop- 2.5.xsd’,因为1)找不到文件; 2)文件无法阅读; 3)文档的根元素不是。 其次是: 严重:StandardWrapper.Throwable org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自/WEB-INF/beans.xml的XML文档中的第39行无效; 嵌套exception是org.xml.sax.SAXParseException:cvc-complex-type.2.4.c:匹配的通配符是strict,但是找不到元素’aop:config’的声明。 引起:org.xml.sax.SAXParseException:cvc-complex-type.2.4.c:匹配的通配符是strict,但是找不到元素’aop:config’的声明。 基于此,当Tomcat解析beans.xml文件时,似乎没有读取模式,导致无法识别元素。 我的beans.xml文件如下: 我的beans.xml文件中的元素是从Spring网站上复制粘贴的,以尝试删除任何可能的错误来源 任何人都可以阐明为什么会出现这种错误以及我可以做些什么来解决它?

使用XSD中的元素“anyAttribute”和“any”将XML编组为Java

我遇到了这个XSD和JAXB问题…请帮帮我… 我需要实现的是完全生成下面的xml。 …. …. 这是我需要从Java创建的完整xml文件的示例: SUBMISSION_REQUEST.xml 。 以下是我所做的总结: 从涉及的两个XSD文件生成Java类。 涉及的两个XSD文件是:envelope-v2-0-HMRC.xsd – 链接到文件:https:// drive.google.com/file/d/0Bwota60eLfeIN1duSGVhTE8xOWM/view?usp=sharing FullPaymentSubmission-2016-v1-2。 xsd – 链接到文件:https:// drive.google.com/file/d/0Bwota60eLfeIbUtMN1RaMmt0LWM/view?usp=sharing 创建了一个unit testing,根据SUBMISSION_REQUEST.xml中的值设置GovTalkMessage对象的值 (这是我遇到问题的地方)。 设置Body的值,我需要形成IRenvelope来完成xml,但我得到的是一个具有不完整setter的Body类(没有IRenvelope)。 主要的xml信封是GovTalkMessage,用于向英国政府的HMRC发送消息。 似乎GovTalkMessage信封已经可重复使用,它可以通过特别使用Body标签接受不同的消息。 我的困境是在Body标签内部我需要能够将来自FullPaymentSubmission-2016-v1-2.xsd的IRenvelope作为IRenvelope的XML Schema放置,并且能够在Java中设置与此对象关联的值,以便我可以在SUBMISSION_REQUEST.xml上看到创建整个xml GovTalkMessage的XSD是envelope-v2-0-HMRC.xsd。 您将看到匿名Body类型下的内容是anyAttribute和any 。 但我需要的是IRenvelope。 为了更清楚地解释,我已经为envelope-v2-0-HMRC.xsd生成了Java类,并给了我GovTalkMessage.java,它是我需要设置值的主要等效xml GovTalkMessage信封。 以下是我使用的xjc命令: xjc -p com.rti.rim2016.v1_2.envelope envelope-v2-0-HMRC.xsd xjc -p com.rti.rim2016.v1_2.fps FullPaymentSubmission-2016-v1-2.xsd 主要问题是GovTalkMessage “Body”元素使用## any和xsd:anyAttribute 为envelope-v2-0-HMRC.xsd生成了相应的Java类,并获得了GovTalkMessage.java的代码(我只提供了与“body”元素相关的代码段)。 显然,没有setter方法可以重定向地设置与IRenvelope相关的值,这样我就可以完成XML的构建。 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = “”, propOrder = { “envelopeVersion”, “header”, […]

JAXB – xsd:all中无限制maxOccurs的元素

假设我有以下java类映射到我的REST服务的请求主体以搜索用户。 @XmlRootElement(name = “SearchParams”) @XmlType(propOrder = {}) public class SearchParams { private String firstname; private String lastname; private List role; … } 请注意@XmlType注释的propOrder参数 – 它声明表示单个属性出现在XML文件中的顺序无关紧要,因此应在生成的XSD架构中使用xsd:all而不是xsd:sequence 。 但是,正如您所看到的,其中一个属性( 角色属性)是一个列表,因此对应一个具有无界maxOccurs的元素。 似乎在xsd:all complexType中不允许具有无界maxOccurs的元素。 我该如何避免这个问题? 请注意,与role不同, firstname和lastname的 maxOccurs为1 。 因此,我不能使用无界的xsd:choice而不是xsd:all 。