- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,显然我在这里做错了什么。我正在尝试创建一个网络服务,我希望“dateShipped”是可选的,这意味着在 WSDL 中,我希望 minOccurs="0"
[Serializable]
[XmlType]
public class CTShipment
{
[XmlElement(Order = 0, IsNullable=false)] public CTDeliveryMethod DeliveryMethod;
[XmlElement(Order = 1, IsNullable=false)] public CTShipmentAddress ShipmentAddress;
[XmlIgnore] public bool dateShippedSpecified;
[XmlElement(Order = 2, IsNullable=false)] public DateTime dateShipped;
}
我希望 WSDL 像这样生成:
<xs:complexType name="CTShipment">
<xs:annotation>
<xs:documentation>All details for the shipment of a suborder.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="DeliveryMethod" type="CTDeliveryMethod" nillable="false"/>
<xs:element name="ShipmentAddress" type="CTShipmentAddress" nillable="false"/>
<xs:element name="dateShipped" type="xs:dateTime" nillable="false" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
我实际得到的是这样的:
<xs:complexType name="CTShipment">
<xs:sequence>
<xs:element name="DeliveryMethod" nillable="true" type="tns:CTDeliveryMethod"/>
<xs:element name="ShipmentAddress" nillable="true" type="tns:CTShipmentAddress"/>
<xs:element name="dateShipped" type="xs:dateTime"/>
<xs:element name="dateShippedSpecified" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
根据我读过的几件事(包括 http://msdn.microsoft.com/en-us/library/zds0b35c%28v=vs.90%29.aspx ),包括公共(public) bool “dateShippedSpecified”应该使“dateShipped”可选(minOccurs=0)。如您所见,这不仅没有发生,而且“dateShippedSpecified”出现在 WSDL 中,即使它被标记为“[XmlIgnore]”。您可能已经注意到还有另一个问题:即使我指定了“IsNullable=false”,我在 WSDL 中仍然得到 nillable="true"。
这不少于 4 个问题,我无法解释所有与同一件事相关的问题:
如何在我的 WSDL 中将 minOccurs 设置为 0?
为什么 [fieldName]Specified 模式没有使 [fieldName] 可选 (minOccurs = 0)?
即使它不遵循 ___Specified 模式,如果 dateShippedSpecified 标记为 XmlIgnore,为什么它会出现在 WSDL 中?
为什么所有内容都标记为 nillable="true",即使我指定了“IsNullable=false”?
作为奖励问题,如果有人知道...
如何获取要包含的注释(如下所示)?
<xs:annotation>
<xs:documentation>All details for the shipment of a suborder.</xs:documentation>
</xs:annotation>
最佳答案
这是由于序列元素。它指定每个元素都有 minOccurs= 1。并且 WSDL 使用序列元素而不是“全部”,因为您为它们指定了一个顺序。这要求每个值都存在。
所以当您删除订单时它应该可以正常工作。如果您真的需要订单,那么您将无法遗漏该值。
关于c# - 使用 "Specified"模式在 WSDL 中设置 minOccurs=0 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14779767/
我有以下架构:(摘录)
我正在构建我的 svcutil 命令行以从 OSEO schema 生成业务对象. 每当它告诉我缺少“xxx”类型时,我都会确定我需要将什么 xsd 添加到命令行并添加它。到目前为止,我的命令行如下所
这个问题已经有答案了: XML Schema minOccurs / maxOccurs default values (3 个回答) 已关闭 3 年前。 当我们在 WSDL 声明中不声明任何 min
我正在使用 Apache CXF 进行 Web 服务开发。我们写好了Java代码,WSDL会由CXF引擎自动生成 我有一个名为 xmlMessage 的 String 必须将 minoccurs 设置
我使用的是apache cxf 3.1.8,wsdl是由cxf引擎自动生成的。我想为字段 ProductId 设置 minOccurs 和 maxOccurs,如下所示: 预计: 实际: 换句话
当我运行我的代码时,它给了我这个错误 [ s4s-att-not-allowed: Attribute 'maxOccurs' cannot appear in element 'element'.]
在下面的这个例子中,
鉴于此 XML 模式片段: 预期结果有效元素可能包含 0 个或多个 元
我们将 CXF 框架与 aegis 映射器一起用于 java 服务器和 .NET 客户端。默认情况下,WSDL 类中的所有变量的 minOccurs=0。我们在 CXF 配置中使用这样的设置来防止它:
我有一个 XML 架构: 我有一条 XML 消息: Fred 我使用 JAXB 自动生成我的类(即 Person.java 等)。 因此,在运行时
我想知道 XML 模式规范如何处理这些情况: 没有给出 maxOccurs -> 这是基数 [1..1] 吗? 我想这简直是无效的? 这是基数 [0..2] 还是 [1..2]? 是否有关于 X
我有一个简单的架构,我将 minOccurs 和 maxOccurs 都声明为 1。当我运行 XSD.exe 以生成 C# 类并在代码中使用该类时;该字段未强制执行。是否缺少一些额外的步骤?还是使用
我无法理解以下 XML 模式的行为: 我预计这两个元素中
我正在构建一个 ASP.NET Web 服务。 我的代码定义如下,但我不知道如何通过 wsdl 指定 FirstName 和 LastName 属性的 minOccurs。我要那些按要求,不能为空。是
我正在使用 svcutil 从 Web 服务生成客户端代理。WSDL 包含属性 minOccurs 设置为 0 的元素 然而,生成的 DataContract 完全忽略了这个属性,只是创建了一个没有
我正在尝试使用 EclipseLink MOXy 2.1.2 和 Java 1.6 生成基于我的域类的模式,遵循以下示例:http://wiki.eclipse.org/EclipseLink/Exa
我遇到了一个遗留的 XSD,它有一堆像...... ...其中 minOccurs 和 maxOccurrs 都等于 1,并且有一个默认值。由于 XML 文档无论如何都需要包含一些值,因
如何使用 XSOM 解析器从元素中获取 minOccurs 属性?我看过这个获取与复杂类型相关的属性的示例: private void getAttributes(XSComplexType xsCo
所以我想要一个像下面这样用@XmlElements 注释的列表 @XmlElements( { @XmlElement(name = "Apple", type
我正在为 Web 服务的客户端编写代码。在 Web 服务定义文件中,定义了“minOccurs”和默认值。我如何访问这些 minOccurs 和默认值? 在 WSDL 文件中,元素定义如下: 其中 o
我是一名优秀的程序员,十分优秀!