Tag: xsd

XSD – 2个属性之一是必需的?

有没有办法指定在XSD中需要2个属性之一? 例如,我有这样的定义。 <xs:attribute name="Name" type="xs:string" use="optional" /> <xs:attribute name="Id" type="xs:string" use="optional" /> 我希望能够定义至less有一个是必需的。 那可能吗?

如何解决Eclipsevalidation错误“检测到文档没有语法约束”?

Eclipse 3.5.2正在抛出一个XML模式警告消息: No grammar constraints (DTD or XML schema) detected for the document. application.xml文件: <?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5"> </application> 我不想禁用这个警告。 我怎样才能让Eclipse正确地validationXML文档?

WADL /使用Jersey以合同为先的方式生成XSD

我一直在使用Jersey进行REST Web服务工作几天,并设法使所有的CRUD操作工作,有几种交换格式:XML,JSON,Google Protobuf。 不过,我正面临一些与自动生成的WADL和XSD有关的问题。 上下文 为了定义以这三种格式交换的对象,我遵循了“合同优先”的方法 : 从我写的XSD中,我使用JAXB生成了我的模型类; 从我写的一个等价的原始文件中,我生成了Google Protobuf类(并且在内部有一种将这些类转换为JAXB生成的对象的方法,以便拥有一个独特的模型)。 但是,因为我希望我的用户也能够生成他们的类 ,所以我想共享这些模式文件(.xsd和.proto),并将它们与自动生成的WADL很好地集成在一起 。 为此,感谢这个 wiki页面: 我已经暴露了两个文件下 /schema/schema.xsd /schema/schema.proto 我已经添加了一个应用程序语法文件: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <grammars xmlns="http://wadl.dev.java.net/2009/02" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xi="http://www.w3.org/1999/XML/xinclude"> <include href="../schema/schema.xsd" /> </grammars> 我已经添加了一个定制的WADL生成器: public class RichWadlGeneratorConfig extends WadlGeneratorConfig { @Override public List<WadlGeneratorDescription> configure() { return generator(WadlGeneratorApplicationDoc.class) .prop("applicationDocsStream", "application-doc.xml") .generator(WadlGeneratorGrammarsSupport.class) .prop("grammarsStream", "application-grammars.xml") .descriptions(); } } 这样下面出现在WADL中,当我打到/rest/application.wadl : […]

targetNamespace和xmlns没有前缀,有什么区别?

在xml模式文档中,如果我有两个targetNamespace和没有前缀的xmlns。 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/" xmlns="http://example.com/"> 他们之间的确切区别是什么? 我的理解是,如果你有一个没有前缀的xmlns,那么没有前缀的所有元素都会得到这个名称空间,并且…对于targetNamespace也是一样。

什么是版本化XML模式的最佳实践?

我经常必须为不同的基于XML的导入例程deviseXML模式。 很显然,XML模式会随着时间的推移而发展,或者可能包含修复的错误,所以捕获模式的版本以及使用一些机制来绑定特定的版本非常重要。 目前我有两种情况: 该错误在模式中find,所有模式实例必须符合固定版本。 模式升级,应该被认为是可取的,但也应该支持旧模式。 最后,我想出了在模式的命名空间中存储版本信息: targetNamespace="http://schemas.company.com/Geodesy/2010/River.xsd" 当修复一个错误时,我将它修复在同一个命名空间中,但是如果我要升级一个模式,那么我需要创build一个新的命名空间,但添加了升级月份: targetNamespace="http://schemas.company.com/Geodesy/2010/01/River.xsd" 如果我在一个月内有一次以上的升级,那么只需追加一天: targetNamespace="http://schemas.company.com/Geodesy/2010/01/17/River.xsd" 你知道更好的方法吗?

将属性添加到简单types或对Xml架构中的复杂types的限制

问题如下: 我有以下的XML片段: <time format="minutes">11:60</time> 问题是我不能同时添加属性和限制。 属性格式只能具有分钟,小时和秒的值。 时间有restrictionpattern \d{2}:\d{2} <xs:element name="time" type="timeType"/> … <xs:simpleType name="formatType"> <xs:restriction base="xs:string"> <xs:enumeration value="minutes"/> <xs:enumeration value="hours"/> <xs:enumeration value="seconds"/> </xs:restriction> </xs:simpleType> <xs:complexType name="timeType"> <xs:attribute name="format"> <xs:simpleType> <xs:restriction base="formatType"/> </xs:simpleType> </xs:attribute> </xs:complexType> 如果我创build一个复杂types的timeType,我可以添加一个属性,但不是限制,如果我做一个简单的types,我可以添加限制,但不是属性。 有没有办法解决这个问题。 这不是一个很奇怪的限制,还是它?

在XML中使用大于符号

我用xml version =“1.0”创build了xml文档。 在那个文档中,我需要使用大于符号>和小于符号< 。 我应该如何包含这些符号? 这不起作用。 &gt; 和&lt; 不为我工作。 有没有特殊的编码器?

XML模式文件中的xs和xsd之间的区别?

XML模式文件中的xs和xsd前缀有什么区别?

使用Notepad ++来针对XSDvalidationXML

有人可以解释如何使用Notepad ++来validationxsd文件的xml文件。 “XML工具”插件下拉菜单中没有提供指定XSD文件的选项。 XML插件已正确安装在plugins子目录中,并且3个DLL被复制到Notepad ++ EXE子目录中。 其他XML“validation”function的工作,但没有办法validation对XSD。

如何从Eclipse中的XML文件生成XSD?

我正在尝试从XML文档创build一个XSD 。 这可以通过Eclipse插件或任何内置function来完成吗? 或者这可以通过任何框架来完成? 有一些在线实用程序来做到这一点,但我想本地的东西。 谢谢