Jean Holland
asked on
Format of Request Document - Can you have multiple entries with same name?
I'm getting "duplicate attribute" error when attempting to create this document. Is it not allowed to have the multiple Filter Field entries?
Jean
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<ApiDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://microsoft.com/wsdl/types/">
<Request>
<Settings></Settings>
<Filters>
<Filter Field="FiscalDate" Operator="Greater than or equal" Value="2017-06-19T00:00:00 .000" />
<Filter Field="FiscalDate" Operator="Less than" Value="2017-06-20T00:00:00 .000" />
<Filter Field="Location" Operator="Equal" Value="100" />
</Filters>
<SortDescriptions>
<SortDescription Name="FiscalDate" Direction="Ascending" />
</SortDescriptions>
</Request>
</ApiDocument>
Jean
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<ApiDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://microsoft.com/wsdl/types/">
<Request>
<Settings></Settings>
<Filters>
<Filter Field="FiscalDate" Operator="Greater than or equal" Value="2017-06-19T00:00:00
<Filter Field="FiscalDate" Operator="Less than" Value="2017-06-20T00:00:00
<Filter Field="Location" Operator="Equal" Value="100" />
</Filters>
<SortDescriptions>
<SortDescription Name="FiscalDate" Direction="Ascending" />
</SortDescriptions>
</Request>
</ApiDocument>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
It fails here:
FilterItemElement.Add(Filt erAtt2);
FilterItemElement.Add(Filt
ASKER
I see my error. It should be FilterItemElement2.Add and so forth. I believe that this will resolve my problem. Will test and post results.
ASKER
zc helped me discover the error in my code.
ASKER
Here's the code. Perhaps I am confusing Elements and Attributes. This is C#
XDocument RequestFiscalSummaryDocume
XElement APIDoc = new XElement(ns + "ApiDocument",
new XAttribute(XNamespace.Xmln
RequestFiscalSummaryDocume
XElement RequestElement = new XElement(ns + "Request", string.Empty);
APIDoc.Add(RequestElement)
XElement SettingsElement = new XElement(ns + "Settings", string.Empty);
RequestElement.Add(Setting
XElement FiltersGroupElement = new XElement(ns + "Filters", string.Empty);
RequestElement.Add(Filters
XElement FilterItemElement = new XElement(ns + "Filter");
FiltersGroupElement.Add(Fi
XAttribute FilterAtt = new XAttribute("Field", "FiscalDate");
XAttribute OperatorAtt = new XAttribute("Operator", "Greater than or equal");
XAttribute ValueAtt = new XAttribute("Value", BeginDate);
FilterItemElement.Add(Filt
FilterItemElement.Add(Oper
FilterItemElement.Add(Valu
XElement FilterItemElement2 = new XElement(ns + "Filter");
FiltersGroupElement.Add(Fi
XAttribute FilterAtt2 = new XAttribute("Field", "FiscalDate");
XAttribute OperatorAtt2 = new XAttribute("Operator", "Less than");
XAttribute ValueAtt2 = new XAttribute("Value", EndDate);
FilterItemElement.Add(Filt
FilterItemElement.Add(Oper
FilterItemElement.Add(Valu
XElement FilterItemElement3 = new XElement(ns + "Filter");
FiltersGroupElement.Add(Fi
XAttribute FilterAtt3 = new XAttribute("Field", "LocationCode");
XAttribute OperatorAtt3 = new XAttribute("Operator", "Equal");
XAttribute ValueAtt3 = new XAttribute("Value", LocCode);
FilterItemElement.Add(Filt
FilterItemElement.Add(Oper
FilterItemElement.Add(Valu
XElement SortGroupElement = new XElement(ns + "SortDescriptions", string.Empty);
RequestElement.Add(SortGro
int SortGroupSize = 1;
for (int j = 0; j < SortGroupSize; j++)
{
XElement SortDescriptionElement = new XElement(ns + "SortDescription");
SortGroupElement.Add(SortD
XAttribute SortFieldName = new XAttribute("Name", "FiscalDate");
SortDescriptionElement.Add
{
XAttribute SortDirectionAtt = new XAttribute("Direction", "Ascending");
SortDescriptionElement.Add
}
}
return RequestFiscalSummaryDocume
}