b/w 模式世界中的 b/w 原始数据类型和派生数据类型有什么区别?

What is the difference b/w primitive datatypes and derived datatypes in XML schema world?

有人可以详细说明这个概念吗?
我是初学者,找不到一篇像样的文章。

首先查看完整的 type system of XML Schema。下图显示了几乎整个类型系统,除了anySimpleType(以下所有类型都是简单类型)和任意的用户定义的复杂类型。

查看被称为 "primitive types" 的类型:

现在,是什么造就了这些类型 "primitive"?它们是原始的,因为它们所代表的对象几乎没有(如果没有)共同点,并且它们的行为非常不同。换句话说,这些原始类型的语义几乎没有重叠。从这个事实也可以看出,none 个原始类型可以用另一种原始类型的定义来解释。此外,在应该键入 XML 时(例如在 XSLT 2.0 中),原始类型是最迫切需要的类型。

然后,还有派生类型:

派生类型被称为"derived",因为它们派生自一种特定的基本类型。如您所见,只有 stringdecimal 具有内置派生类型。例如,token 来自 stringnormalizedString.

至关重要的是,从 string 派生的所有类型仍然符合 string,它们中的每一个都定义了 string 允许的字符串的特定子集。另一方面,我们找不到所有原始类型的共同祖先类型——除了 anySimpleType,这是一个相当抽象的类型。

原始类型和派生类型之间存在这种区别的原因是 XML Schema 的类型系统是 模块化的 :有一组有限的原子构建块(基本类型)其他一切都建立在它的基础上。

最后,specification 本身说得非常好:

[Definition:]  Primitive datatypes are those that are not defined in terms of other datatypes; they exist ab initio.
[Definition:]  Derived datatypes are those that are defined in terms of other datatypes.

unable to find a decent article on this one.

有很多资源解释这个主题,其中包括:http://books.xmlschemata.org/relaxng/relax-CHP-8-SECT-1.html, http://www.w3.org/TR/xmlschema-2/ and https://msdn.microsoft.com/en-us/library/ms761405%28v=vs.85%29.aspx