Hacker News new | past | comments | ask | show | jobs | submit login

Why are they so into XML? Move on to json or yaml please



I think it's driven by a desire for strict validation. They provide XSD schemas and use them internally. Conveyor uses them too which not only helps catch internal bugs, it means if you provide a snippet of XML to do OS integrations the tool doesn't support yet then you still get good error messages at package build time telling you what you did wrong.

There are similar schema languages for JSON these days, but without any equivalent to namespaces. Microsoft uses versioned namespaces heavily in the AppX Manifest. It's got a bit crazy, a typical manifest might have 10 different xmlns declarations, but it means that if you mis-name an element or (more likely) put it in the wrong place that won't be silently ignored, it'll trigger a validation error. To get that you need to able to assign each element to a specific fixed schema and then compose them. If you just have a single schema and evolve it without any concept of namespaces, old software can't tell the difference between a mistake and a new extension from the future.


That seems like change for change's sake. XML is fine for stuff that's machine generated. I doubt anyone is hand-editing MSIX installers.


If it is not hand-edited, why isn't it binary?


Microsoft don't have any generically extensible binary format that they use consistently, like Google does with protobufs. Besides, XML isn't so bad.

Look at the alternative: Apple went with a generic binary config format for macOS (binary plists) but then introduced an XML version anyway. As an industry we've never got any good at managing the dichotomy between efficient-for-machines binary formats and efficient-for-humans text formats.


Probably simply because every version of Windows already has MSXML.DLL so your project gets it "for free".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: