<?xml version="1.0" encoding="utf-8" ?> <xs:schema elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Artech.SpecialDataContract.Contract" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.datacontract.org/2004/07/Artech.SpecialDataContract.Contract" xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/"> <xs:import schemaLocation="http://artech/Artech.SpecialDataContract/OrderManagerService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" /> <xs:complexType name="ArrayOfOrder"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="Order" nillable="true" type="tns:Order" /> </xs:sequence> </xs:complexType> <xs:element name="ArrayOfOrder" nillable="true" type="tns:ArrayOfOrder"/> <xs:complexType name="Order"> <xs:sequence> <xs:element minOccurs="0" name="OrderDate" type="xs:dateTime"/> <xs:element minOccurs="0" name="OrderID" type="ser:guid"/> </xs:sequence> </xs:complexType> <xs:element name="Order" nillable="true" type="tns:Order"/> </xs:schema>
【IT168技术文档】
Data Contract for Collection
我们照例用例子来说明问题,在这里我们创建一个批量处理Order的Service,于是我们创建了一个OrderCollection Type:
下面是Service Contract的定义:namespace Artech.SpecialDataContract.Contract { [DataContract] public class Order { [DataMember] public Guid OrderID { get; set; } [DataMember] public DateTime OrderDate { get; set; } } public class OrderCollection : List<Order> { } }
是OrderCollection 在XSD中的呈现:namespace Artech.SpecialDataContract.Contract { [ServiceContract] public interface IOrderManager { [OperationContract(Name = "ProcessWithCollection")] void Process(OrderCollection orders); }