Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7027437
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T00:14:49+00:00 2026-05-28T00:14:49+00:00

I am currently writing the specification for an API that works as follows: Client

  • 0

I am currently writing the specification for an API that works as follows:

  • Client makes a HTTPS post to a particular URL with zero or more HTTP parameters
  • Server responds with a short XML document

The data being transferred is very light. Most of the responses will be smaller than 1k, and the largest would be only 10k.

Backwards compatability is important. I would like old clients to continue to work correctly against a upgraded version of the server.

This is what I want to tell the clients:-

  • I expect the client to read the XML, but only access those elements which it needs for processing.
  • Additional elements or attributes may be added into the XML document at any time when the server is upgraded. The clients should skip anything they did not know about.

This is so that old clients will continue to work even though additional information is now returned in a response. (Removing elements from the XML is obviously more difficult and some process for deprecation would be needed).

What is the best format for documenting the XML that is returned?

I have concerns about using a formal language for this documentation (e.g. XSD):

  • addition of extra attributes or elements would mean the XML was not meeting a previously published specification
  • this would tempt people writing clients to parse everything in the XML (even if they do not use it) making it harder to remove elements should that become necessary

Alternatively, am I going about the backwards-compatability wrong? Is this a well-solved problem already? Should the client be asking for a particular version of the response XML?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T00:14:49+00:00Added an answer on May 28, 2026 at 12:14 am

    IMO, you should send your client’s desired version along with the request and return that format. as you’ll need to compute the info of previous versions anyway, there’s no need to bloat up the answer when you know the client won’t use it. if you have an xml independent data structure backing your response code, you can probably even reuse your xml creator for old-style responses.

    Of course, this assumes that the response document is dynamically created. Otherwise, won’t an XQuery or something similar do exactly what you want: filtering the document for only known elements/values?

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm currently writing a simple app that performs a series of requests to the
I am currently writing a simple IOS app that saves tasks into a table.
I'm currently writing a Powershell script that's used to select a user from Active
I'm currently writing some general purpose .net libraries that contain usual helper classes. For
Currently writing a roguelike to learn more about Objective-C/Cocoa. I'm really enjoying it so
I'm currently writing a script that aims to write Google Calendars for 50 people
Im currently writing a C# wrapper for a C++ API, but a specific struct
I'm am currently writing a program that calculates the digits of pi, and I
I'm currently writing a blog post about the internals of the CLI, and I
Currently writing a class where methods that I am considering making private are spread

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.