Tag: xsd

使用Java中的XSOM解析XSD架构。 如何访问元素和复杂类型

我在Java中使用XSOM解析了很多.XSD文件。 我有两个.XSD文件,一个定义日历,第二个定义全局类型。 我希望能够阅读日历文件并确定: 日历有3个属性 有效的是名为eYN的ENUM Cal是一个字符串 状态是一个名为eSTATUS的ENUM Calendar.xsd gtypes.xsd 我尝试访问此信息的代码如下。 我对Java很陌生,所以任何风格批评都欢迎。 我真的需要知道 如何访问复杂类型cal并看到它是一个字符串? 如何访问Status的定义以查看它是eSTATUS 强调文本类型的枚举 我有几次尝试通过ComplexType和Elements和Content访问正确的信息。 但是,我只是没有得到它,我找不到任何有用的例子。 我希望(希望)当你知道如何时,最好的方法(相对)简单。 所以,再一次,如果有人能指出我正确的方向,那将是一个很大的帮助。 xmlfile = “Calendar.xsd” XSOMParser parser = new XSOMParser(); parser.parse(new File(xmlfile)); XSSchemaSet sset = parser.getResult(); XSSchema s = sset.getSchema(1); if (s.getTargetNamespace().equals(“”)) // this is the ns with all the stuff // in { // try ElementDecls Iterator […]

用于实体解析的Catalog.xml文件的XMLSchemavalidation

我有一个schema.xsd ,它包含并修改xhtml,如下所示: … 现在我写了一个Validator,其中 从xml文件中读取模式 使用CatalogManager来解析实体 它工作正常,因为它不从网络加载任何文件,而是找到我的catalog.xml文件中给出的xhtml11.xsd。 public class XmlTemplateValidator implements TemplateValidator { public List validate ( String xml ) throws Exception { Reader input = new StringReader(xml); InputSource inputSource = new InputSource(input); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(true); factory.setValidating(true); SAXParser parser = factory.newSAXParser(); parser.setProperty(“http://java.sun.com/xml/jaxp/properties/schemaLanguage”, “http://www.w3.org/2001/XMLSchema”); XMLReader reader = parser.getXMLReader(); reader.setEntityResolver(new CatalogResolver()); DefaultErrorHandler handler = new […]

BigDecimal在肥皂信息中有科学记数法

我的网络服务有一个奇怪的问题。 我有对象OrderPosition有一个价格(xsd:decimal,fractionDigits = 9)。 Apache CXF为我生成代理类,这个字段是BigDecimal。 当我想发送大于10000000.00000的值时,soap消息中的这个字段有科学记数法(例如1.1423E + 7)。 如何强制该值未以科学记数法发送。

将Java Date对象映射到XML Schema日期时间格式

我在将Java数据类型映射到标准Schema Date数据类型时遇到了一些问题。 我有一个简单的类,我这样注释。 period实例变量是Java Date对象类型。 @XmlAccessorType(value = XmlAccessType.NONE) public class Chart { @XmlElement private double amount; @XmlElement private double amountDue; @XmlElement private Date period; //constructor getters and setters } 这是我的Web服务 @WebService public class ChartFacade { @WebMethod public Chart getChart() throws ParseException { SimpleDateFormat df = new SimpleDateFormat(“yyyy-mm-dd”); Chart chart = new Chart(20.0,20.5, df.parse(“2001-01-01”)); return chart; […]

Java到XSD或XSD到Java

我知道,使用JAXB,您可以从XSD生成Java文件,并且您还可以从带注释的POJO生成XSD 。 各有哪些优缺点? 一个整体比另一个好吗? 我们基本上希望将事件序列化为XML格式的日志。

Spring XSD的访问错误

我正在尝试在我的工作中运行一名前雇员留下的系统,但我遇到了问题。 如果XSD通过远程访问运行: 它给出了一个未找到的exception: Failed to read schema document ‘http://www.springframework.org/schema/context/spring-context-3.0.xsd’, because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not . 如果XSD通过本地访问运行: 它给出了这个例外: C:\Users\claudiomazur>java -jar c:\temp\fin\c.jar 0 [AWT-EventQueue-0] INFO support.ClassPathXmlApplicationContext – Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@4fa52fdf: startup date [Thu Sep 06 11:22:59 BRT 2012]; root of […]

用于从java类生成xsd的实用程序

我想为以下类生成xsd public class Node{ private String value; private List childrens; } 为此类代码生成xsd架构的最佳实用程序是什么 一般来说,我想实现简单的树。 我已经在使用jaxb从schema中生成类。

导致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)

使用Java获取.XSD文件的对象表示

在Java中获取XML模式(.XSD)的静态类型表示的最简单方法是什么? 更具体地说,我希望能够以编程方式遍历XSD中所有已定义的simpleType:s和complexType:s,获取已定义的元素及其类型等。 有点像: for (XsdComplexType complexType : document.getDefinedComplexTypes()) { .. } 请注意:我正在谈论.XSD文档的对象表示。 我不是在寻找XML模式的xjc样式生成Java类。 一种方法是简单地将标准XML读取工具应用于.XSD文件,但我假设有一些开源库可以帮助我解决这个问题。 如上面的伪代码所示,我想要一个静态类型的XSD文档表示。

validationXSD文件

我想validationXSD文件(而不是XML)。 我使用的方法是将XSD视为任何其他XML文件,并使用此www.w3.org/2001/XMLSchema.xsd作为模式。 我使用以下代码: String schemaLang = “http://www.w3.org/2001/XMLSchema”; SchemaFactory factory = SchemaFactory.newInstance(schemaLang); Schema schema = factory.newSchema(new StreamSource(“C:\\Users\\aprasad\\Desktop\\XMLSchema.xsd”)); Validator validator = schema.newValidator(); validator.validate(new StreamSource(“shiporder.xsd”)); 但我收到以下错误: 无法读取架构文档’XMLSchema.xsd’,因为1)找不到该文档; 2)文件无法阅读; 3)文档的根元素不是 。 由于文件路径正确,不确定错误是什么。 请告诉我validationXSD文件的正确方法。