Chinaunix首页 | 论坛 | 博客
  • 博客访问: 628423
  • 博文数量: 155
  • 博客积分: 5688
  • 博客等级: 大校
  • 技术积分: 2134
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-15 15:12
文章分类

全部博文(155)

文章存档

2011年(58)

2010年(97)

分类:

2011-01-21 20:56:06

声明:本文为原创
#####请转贴时保留以下内容######
作者GTT
本文档归属http://oldtown.cublog.cn/.转载请注明出处!
请提出宝贵意见Mail:mtloveft@hotmail.com
提示本文是关于介绍XML Schema的序列化和反序列化
 
 
下面简单介绍下Schema组件之间的关系。
UML图如下
 
 

看这个图之后,就了解了各种类之间的对应关系了。

首先,在一个XSDSchema,可以包含

    1.  n个属性声明(XSDAttributeDeclaration),

    2.  n个类型定义(XSDTypeDefinition),

    3.  n个元素声明(XSDElementDeclaration),

    4.  nID约束定义(XSDIdentityConstraintDefinition),

    5.  n个模型组定义(XSDModelGroupDefinition),

    6.  n个属性组定义(XSDAttributeGroupDefinition),

    7.  n个记号声明(XSDNOtationDeclaration)

按照上面的顺序,一次看每个类的对应关系。

1.  关于属性声明(XSDAttributeDeclaration)

        Ⅰ.  每个属性声明必须指定一个简单类型定义(XSDSimpleTypeDefinition)

2.  关于类型定义(XSDTypeDefinition),没有和其他类的对应关系

3.  关于元素声明(XSDElementDeclaration),

        Ⅰ.  每个元素声明必须指定一个类型定义(XSDTypeDefinition),即可是简单类型,也可是复杂类型

        Ⅱ.  每个元素声明可以包含nsubstitutionGroup,每个substitutionGroup都是元素声明

        Ⅲ.  每个元素声明可以指定一个substitutionGroupAffiliation,也可不指定。substitutionGroupAffiliation也是元素声明

        Ⅳ.  每个元素声明可以包含nID约束定义(XSDidentityConstraintDefinition)

4.  关于ID约束定义(XSDIdentityConstraintDefinition),

        Ⅰ.  每个ID约束定义必须指定一个selector,类型为路径定义(XSDPathDefinition)

        Ⅱ.  每个ID约束定义可以包含一个以上的fields,类型为路径定义(XSDPathDefinition)

        Ⅲ.  每个ID约束定义可以指定一个referenceKey,也可不指定。referenceKey也是ID约束定义

5.  关于模型组定义(XSDModelGroupDefinition),

        Ⅰ.  每个模型组定义必须指定一个模型组(XSDModelGroup),

        .  每个模型组可以指定一个以上的XSDParticle

        .  每个XSDParticle必须指定一个XSDTerm

6.  关于属性组定义(XSDAttributeGroupDefinition),

        Ⅰ.  每个属性组定义可以指定一个通配符,也可以不指定

        Ⅱ.  每个属性组定义可以包含nXSDAttributeUse

        Ⅲ.  每个XSDAttributeUse必须指定一个属性声明(XSDAttributeDeclaration)

7.  关于记号声明(XSDNOtationDeclaration),没有和其他类的对应关系

根据上图在补充说明几个对应关系

8.  关于简单类型定义(XSDSimpleTypeDefinition)

        Ⅰ.  每个简单类型定义必须指定一个baseTypeDefinition,类型也为简单类型定义

9.  关于复杂类型定义(XSDComplexTypeDefinition)

        Ⅰ.  每个复杂类型定义必须指定一个类型定义(XSDTypeDefinition)

        Ⅱ.  每个复杂类型定义可以包含nXSDAttributeUse

        Ⅲ.  每个复杂类型可以指定一个复杂类型内容(XSDComplexTypeContent),也可以不指定

        Ⅳ.  每个复杂类型可以指定一个通配符(XSDWildcard),也可以不指定
 
 
一个Schema文件,可以主要包含以下节点。
 
更全面的应该包含以下节点
 
阅读(1015) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~