草庐IT

xsd-schema

全部标签

c# - 在 XSD 中表示一对重复的 XML 元素

我目前遇到XSD问题。通常一个条目看起来像这样:Something12342013-01-072013-01-096但偶尔它会看起来像这样:SomethingElse56782013-01-082013-01-102013-01-112013-01-1214为了尝试捕捉多次启动和停止的潜力,我尝试了以下操作:但当我使用xsd.exe将其转换为C#类时,它们都产生了一个开始数组,打印后跟一个停止数组:SomethingElse56782013-01-082013-01-112013-01-102013-01-1214这与XML文件不匹配。有谁知道如何正确地做这样的事情?非常感谢。我提出了

c# - 传入 XML 的验证 - 我是否应该同时使用 XSD 文件和代码验证

这更像是一个问题,而不是一个技术问题,寻求有关验证XML的最佳方法的建议。我有一个用C#编写的Web服务,它接受传入的Xml请求。目前我正在根据我的XSD模式验证传入的Xml。这工作正常,我可以捕获任何错误并使用适当的消息进行响应。此外,我有以下函数,我可以将我的对象传递给它,以验证所有属性;privateListValidate(objectoObject){varresults=newList();varcontext=newValidationContext(oObject,serviceProvider:null,items:null);Validator.TryValidat

java - XSD 架构字符串元素加密/解密

我怎样才能使XSD模式字符串元素(密码)作为加密类型,这又将在XSD中用于java代码生成器在XML的写入/读取过程中加密和解密,而不仅仅是验证。是否有任何XSD到java类生成器提供此功能??干杯,雷迪。 最佳答案 您可以使用XmlAdapter来控制数据在XML和Java之间的转换方式。此XmlAdapter用于Hook您自己的加密逻辑。下面是我给出的答案的链接,该答案演示了如何在从XML模式生成模型时创建XmlAdapter。UsingJAXBgeneratedclassforanelementthatrequiresanin

XML Schema Identity constraints - 我可以在选择器的 XPath 中使用绝对路径吗?

我想在XML模式中使用key和keyref在xml文档中实现引用完整性。假设我的XML如下所示:XXXXXXXXXXXXXXX例如,在我的XML中,我想将parentID属性定义为parent元素的主键。我在root元素中声明了相应的xs:key:....在xs:selector的xpath属性中使用相对路径("./parents/parent)元素,如上例所示。但是如果我改用绝对路径(“/root/parents/parent”),身份限制就不起作用了。这是为什么?我的理解是它应该以两种方式工作(在XPath表达式中使用绝对路径或相对路径。 最佳答案

xml - jax-ws 如何在 wsdl 中包含 xml 模式而不是 xsd 导入?

我注意到我的wsdl有一个xsd:import从url导入xml模式。我必须做什么才能在wsdl本身中显示xml模式?我预计将使用我的Web服务的另一个团队将需要它。我不知道他们为什么需要它,但如果他们提出要求,我想知道该怎么做。 最佳答案 只需放置整个xml模式而不是元素。一个简单的例子只是为了看看它会是什么样子:您可以在W3Schools中找到WSDL基础知识和一些在here中解释的WSDL示例. 关于xml-jax-ws如何在wsdl中包含xml模式而不是xsd导入?,我们在Sta

xml - xsd :all 后的重复元素

我想问一下是否可以让一个元素在xsd:all之后重复。像这样:这是无效的,因为xsd:all之后不能有元素,我该如何实现? 最佳答案 您不能将element作为complexType的子元素。您需要在sequence中使用类似all的组,但这也是非法的(all必须是复杂类型的顶层,而且它也不能包含组——只有元素和引用)。所以all太受限制了,无法做你想做的事。一个解决方案是不使用all而是使用不同的组并对其进行配置,使其表现得像您声明的all组。这里有一些选择。您可以选择适合自己的一种,也可以进行一些试验并调整一种。1)choice

xml - XSD:允许序列中任意位置来自不同 namespace 的元素

我一直在尝试以下方法。我想为XML创建一个XSD,其中某些元素只允许出现一次并且需要有效,并且允许来自其他namespace的元素出现在任何地方,并且没有必须用于验证的架构。应该允许的XML:book1,2,3和4只能在XML中出现一次并且需要被验证,其他命名空间中的元素然后ns:应该被允许而不被验证。为此,我在我的XSD中使用xs:any和processContents松散:在这个解决方案中,其他命名空间中的元素只能出现在序列之后,而不能出现在必填元素之间。理想的解决方案(但我知道它在XSD中是不允许的)是更改xs:all中的xs:sequence(但xs:all中不允许xs:any

xml - 如何引用自己创建的 xsd

这是一个非常愚蠢的问题,但我不知道答案所以尽量不要傻笑太多。我正在学习如何创建xsd文件。我根据各种在线指南创建了一个。我不知道该怎么做(教程中从未提及)是如何在其他xml和xslt文件中引用此xsd?xsd未托管在网站上,我不希望它托管在网站上,因为它仅供内部使用。所以我的问题是,我该如何做到这一点? 最佳答案 有两种方法可以解决这个问题...第一个:第二个:构建目录文件以识别资源的命名空间..参见here(例如来自http://mojo.codehaus.org/xml-maven-plugin/examples/catalog

java - Castor 为 xsd 中的整数类型生成 BigDecimal 类型

我使用的xsd架构如下:意思是像XML:111000111但是Castor只为这个模式生成BigDecimal类型:publicabstractclassTrxIdRs_Typeimplementsjava.io.Serializable{//--------------------------///-Class/MemberVariables-///--------------------------//***internalcontentstorage*/privatejava.math.BigDecimal_content;/***Field_trxStatusCode.*/pr

xml - 在 XML::COMPILE::SCHEMA 中附加标签或多个标签

我给了一个xsd文件,一个Perl环境,只能使用XML::LibXML、XML::SAX、XML::Compilexsd的相关部分是[....somemorevalues...]我必须为每个值编写多个属性。到目前为止,我使用的是XML::Compile::Schema$schema->template('PERL',$type);my$doc=XML::LibXML::Document->new('1.0','UTF-8');my$write=$schema->compile(WRITER=>$type,use_default_namespace=>1);my%hash;$hash={