[英]How to validate that child elements exist with out specifying the order in XML Schema?
[英]http response - specifying order of xml elements
我有一個簡單的Web API,它將根據請求中的accept標頭返回json或xml。
(application / json或application / xml)
這是我要返回的數據類的片段:
public int ID { get; set; }
public string ProductTitle { get; set; }
public string Artist { get; set; }
public string EAN_Code { get; set; }
對於json響應,名稱/值對以它們在類中聲明的相同順序返回:
[
{
"ID": 1,
"ProductTitle": "Product 1",
"Artist": "Artist 1",
"EAN_Code": "1234567890123",
但是xml響應按字母順序重新排列元素:
<Artist>Artist 1</Artist>
<EAN_Code>1234567890123</EAN_Code>
<ID>1</ID>
<ProductTitle>Product 1</ProductTitle>
我可以設置一些屬性/配置來停止元素的重新排列嗎?
目前我只有:
services.AddMvc()
.AddMvcOptions(o => o.OutputFormatters.Add(
new XmlDataContractSerializerOutputFormatter()))
.AddJsonOptions(o =>
{
if (o.SerializerSettings.ContractResolver != null)
{
var castedResolver = o.SerializerSettings.ContractResolver
as DefaultContractResolver;
castedResolver.NamingStrategy = null;
}
})
但是xml響應按字母順序重新排列元素:
這是XML序列化的默認行為,並且沒有設置。
要解決此問題,可以為屬性指定Order
。
[DataContract]
public class JsonXML
{
[DataMember(Order =1)]
public int ID { get; set; }
[DataMember(Order = 2)]
public string ProductTitle { get; set; }
[DataMember(Order = 3)]
public string Artist { get; set; }
[DataMember(Order = 4)]
public string EAN_Code { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.