草庐IT

xml - XML Schema 和 XMI 的区别

XML模式(XSD)和XMI有什么区别? 最佳答案 很抱歉在这个超旧的线程中发帖,但我刚遇到同样的问题,发现接受的答案是super错误的,这很好奇,因为接受的答案的作者显然对XMI或XMI在最近发生了翻天覆地的变化。XMI2.5.1实际上是一个标准,它描述了如何从给定的MOF模型创建XML架构,以及如何在对象之间实现交叉引用,因为XML只允许层次结构。因此,XMI可以应用于任何领域,而不仅仅是软件建模(UML)或业务流程(BPMN)。但是,请注意XMI通常应用于元模型级别,而不是实例模型级别。

xml - XSD:根据先前属性的值定义属性

我猜这个功能不存在,但我想我会再试一次。我有一个要验证的XML结构(我无法控制此结构)。在这个结构中,我可以有多个“条件”标签,每个标签都有一个属性“类型”,然后该标签中的其余属性取决于该类型是什么。因此,如果它看起来像这样:那么如果是LessThan类型,就只需要一个maxAmount标签等没有办法根据先前属性的值来使属性成为必需/可选/禁止的,嘿?我尝试使用多个Condition标签创建一个选择,每个类型具有固定的类型值和自定义属性集,但它提示标签具有相同的名称。 最佳答案 您描述的功能名称是“共现约束”,XSD1.0不支持它们

java - 根据 W3C XML 模式定义验证 XSD

我正在生成一些XML模式,并希望确保我们的生成器正在创建有效的XML模式文档(不是XML)。我试图想出代码来验证XML模式文档,但失败得很惨。我没想到会这么复杂。privatevoidvalidateXsd(StringxsdAsString){try{SAXParserFactoryfactory=SAXParserFactory.newInstance();factory.setValidating(true);factory.setNamespaceAware(true);factory.setFeature("http://apache.org/xml/features/val

XMLNS 属性声明

我的XSD有问题,当我将代码输入XSD验证器时出现此错误:“no-xmlns:属性声明的{name}不能匹配'xmlns'。”这是我的XML:我假设它与架构中的第二行代码有关。此行与我的XML文档中的以下行相关: 最佳答案 问题出在您的架构中。只需删除行:XML文档是正确的。在您的文档中,您选择通过分配该值属性xmlns将URIhttp://MyURL绑定(bind)到默认命名空间。这非常好,如NamespacesinXML1.0中所述.命名空间很特殊。见最后一段XMLSchemaPart1:3.2.1AttributeDetail

java - JAXB 不为空 xs :element tag 创建类

我正在将一个项目从jaxb1.0迁移到2.1。当使用jaxb2.1(通过antxjc任务)从xsd生成类时,生成的类缺少没有任何内容的元素,如下所示:....但是当元素确实有内容时会生成文件,如下所示:为什么会这样?先前生成的一组类(使用jaxb1.0)包含所有元素的类,而不仅仅是那些有内容的类。如何让jaxb生成这些缺失的类?我真的无权更改xsd(但如果确实有必要,我可以这样做)。 最佳答案 好消息是您不需要生成“缺失类”,我将在下面通过示例进行演示。schema.xsd下面是您的XML架构的简化版本。福JAXB(JSR-222)

c# - Zillow 的 SearchResults.xsd 和 Visual Studio 的 XSD 命令

我尝试在zillow“SearchResults.xsd”上​​运行VisualStudio的XSD.EXE实用程序来生成c#或vb.net类,但我没有运气,正在寻求帮助。我不断收到错误(见下文)。这是我从http://www.zillow.com/howto/api/GetDeepSearchResults.htm下载的原始文件:以下是我在VisualStudio2010中尝试XSD.EXE时不断遇到的错误:C:\Users\username\Documents>xsd/classesSearchResults.xsdMicrosoft(R)XmlSchemas/DataTypess

xml - XSD - 元素嵌套在同名元素中 - 是否合适?

主题中的问题:在XSD中定义嵌套在同名元素中的元素是否有效?例如,以下片段是否正确?如果是这样,你如何让xjc正确地为它生成类?我遇到编译错误,例如静态类TypeOfAction已定义(基本上我会生成两个同名的嵌套静态类)。 最佳答案 这个片段很好。只有全局元素需要具有唯一的限定名称(命名空间和本地名称的组合)。来自JDK7的XJC可以很好地处理您的代码段。我的示例XSD生成正确的类。但它无法编译,因为Java不允许声明与外部类同名的内部类。尝试使用xjc绑定(bind)或内联模式注释更改生成的类型名称。你可以找到例子here.示例

xml - 具有混合内容的 xsd 复杂类型

我正在阅读thistutorial它指出要获得这样的xml:DearMr.JohnSmith.Yourorder1032willbeshippedon2001-07-13.你需要这个xml模式定义:但我认为这并不完全正确。它定义了name、orderid和shiptdate元素,但没有定义像DearMr.这样的纯文本。,Yourorder和willbeshippedon唯一xs:string类型已分配给name元素。你能帮我理解一下吗?非常感谢 最佳答案 这就是mixed="true"所做的-它允许在复杂类型的已声明元素周围和之间使

base64Binary 的 XmlAdapter 结果为 String

我有一个包含以下内容的XSD文件:当我用xjc生成java代码时,它会产生这个:publicclassCertificate{@XmlElement(required=true,type=String.class)@XmlJavaTypeAdapter(X509CertificateAdapter.class)@XmlSchemaType(name="base64Binary")protectedX509Certificatecertificate;....}适配器工作正常。我的问题是为什么@XmlElement(required=true,type=String.class)?为什么

java - 在 XSD 的限制中指定多个模式

我有以下XSD元素:我想单独应用这些模式中的每一个。它应该首先检查长度是否合适。如果是,则检查它是否至少有2位数字,依此类推。相反,它将所有表达式连接在一起并尝试将它们应用在一起。这是非常糟糕的设计。如果只允许一种模式应该定义的基数为1。允许多个给人的印象是支持多种模式。有没有办法将多个模式应用于XSD元素? 最佳答案 Multiplepatternsperrestriction被支持,但它们并不意味着AND;他们的意思是:Note:AnXMLcontainingmorethanoneelementgivesrisetoasingl