问题
We have been asked to put together a set of schemas for an open XML standard.
XSD 1.0 would cope with most of the rules, but it would be a bit messy in places (especially to allow for extensibility) it would also rely on implementers reading free text descriptions of some rules in the form of annotations.
Pretty much all of the rules could be implemented using XSD 1.1, however we are not sure if this would limit implementers unduly.
So my question, is XSD 1.1 mature enough to be used in the wild?
回答1:
Reasons to use XSD 1.0
- Least restrictive requirement argument: Maximize interoperability between systems and teams by requiring the lowest common denominator standard, XSD 1.0.
- Broader tool and library support: JAXB and xsd.exe (.NET), for example, still do not support XSD 1.1.
Reasons to use XSD 1.1
- Assertions (
xs:assert
) are wonderfully powerful. Leverages XPath to provide flexible mechanism to express constraints beyond core content and type modeling. - Conditional Type Assignment can be useful when type should vary per attribute value.
- Many other improvements. See W3C XML Schema Definition Language (XSD) 1.1 Part 1: Structures, Appendix G Changes since version 1.0 (non-normative)
Recommendation
If all parties involved with building and interacting your system are prepared to move to XSD 1.1 and have no dependencies on tools or libraries that only support XSD 1.0, then move to XSD 1.1. Otherwise, stick with XSD 1.0.
来源:https://stackoverflow.com/questions/41147517/should-i-be-using-xsd-1-1-to-build-an-open-standard