<!-- DandD.dtd Version 3.0.4  -->

<!ELEMENT DandD ( Title, BackGround, DataSampling?, DataStructure?, Data, 
                        Analysis*,  Model*, DataBody, Appendix) >


<!-- Title -->

<!ELEMENT Title EMPTY >
<!ATTLIST Title Title    IDREFS #REQUIRED >
<!ATTLIST Title Language CDATA  #REQUIRED  >
        <!-- Language: a list of N language names for IDREFS, e.g. 
                 "English Japanese French" -->
        <!-- Most of IDREFS in the following except IDREFS to 
              <DataVector> should have N Id's -->
         <!-- Title: Should Refer N <Text>(s) in <Appendix> -->

<!--Back Ground-->

<!ELEMENT BackGround (Introduction?, Relatives?, Reference?) >

        <!ELEMENT Introduction  EMPTY >
        <!ATTLIST Introduction  Id    ID     #IMPLIED
                                Introduction IDREFS #REQUIRED >
        <!-- Introduction: Should Refer N <Text>(s) in <Appendix> -->

        <!ELEMENT Relatives (Parent | Child | Sibling |Inherit) >
        
             <!ELEMENT Parent (Inherit)* >
             <!ATTLIST Parent Id ID #REQUIRED
                              URL CDATA #REQUIRED>
             <!ELEMENT Child (Inherit)* >
             <!ATTLIST Child Id ID #REQUIRED
                             URL CDATA #REQUIRED>
             <!ELEMENT Sibling EMPTY >
             <!ATTLIST Sibling Id ID #REQUIRED
                               URL CDATA #REQUIRED>

             <!ELEMENT Inherit EMPTY>
             <!ATTLIST Inherit RefId IDREF #REQUIRED 
                               ParentId IDREF #IMPLIED 
                               ParentLongName IDREFS #IMPLIED>

        <!ELEMENT Reference EMPTY >
        <!ATTLIST Reference RefId IDREFS #REQUIRED >
        <!-- Reference: Should Refer N <RefList>(s) in <Appendix> -->

<!--Data Sampling-->

<!ELEMENT DataSampling (Randomize | Systematic | Purposive |
                        ExperimentalDesign )* >

        <!ELEMENT Randomize (Randomized, From, Rate?) >
        <!ATTLIST Randomize     Id        ID      #REQUIRED
                                LongName  IDREFS  #IMPLIED
                                For       CDATA   #REQUIRED > 
        <!-- LongName: Should Refer N <Text>(s) in <Appendix> -->


                <!ELEMENT Randomized (#PCDATA) >
                <!ATTLIST Randomized Distinct  (YES | NO)  "YES" >

                <!ELEMENT From  (#PCDATA) >
                <!ATTLIST From   Size   CDATA  #IMPLIED >

                <!ELEMENT Rate (#PCDATA) >

        <!ELEMENT Systematic (Sampled, From) >
        <!ATTLIST Systematic    Id        ID      #REQUIRED
                                LongName  IDREFS  #IMPLIED
                                Pattern   CDATA   #REQUIRED
                                For       CDATA   #REQUIRED >
        <!-- LongName: Should Refer N <Text>(s) in <Appendix> -->


                <!ELEMENT Sampled (#PCDATA) >
                <!ATTLIST Sampled Distinct   (YES | NO)   "YES" >

        <!ELEMENT Purposive (Sampled, From)>
        <!ATTLIST Purposive     Id        ID      #REQUIRED
                                LongName  IDREFS  #IMPLIED
                                For       CDATA   #REQUIRED >
        <!-- LongName: Should Refer N <Text>(s) in <Appendix> -->


        <!ELEMENT ExperimentalDesign (Balance*, Interaction) >
        <!ATTLIST ExperimentalDesign    Id       ID        #REQUIRED
                                        LongName IDREFS        #IMPLIED >
        <!-- LongName: Should Refer N <Text>(s) in <Appendix> -->


                <!ELEMENT Balance     EMPTY>
                <!ATTLIST Balance       What      CDATA   #REQUIRED
                                        Block     IDREFS  #IMPLIED
                                        Treatment IDREF   #IMPLIED
                                        Lambda    CDATA   #IMPLIED >
                     <!-- Block, Treatment: Should Refer <DataVector>(s) -->

                <!ELEMENT Interaction EMPTY>
                <!ATTLIST Interaction   What       CDATA  #REQUIRED >
                
<!--Data Structure-->
<!ELEMENT DataStructure (HyperRelation)*>
	<!ELEMENT HyperRelation (ForeignKey|CommonMeasurement|SharedValues)*>
	<!ATTLIST HyperRelation	Id	ID #REQUIRED 
							Relations IDREFS #REQUIRED>
	
	<!ELEMENT ForeignKey EMPTY>
	<!ATTLIST ForeignKey From IDREFS #REQUIRED 
	          To   IDREFS #REQUIRED>
	
	<!ELEMENT CommonMeasurement EMPTY>
	<!ATTLIST CommonMeasurement RefId IDREFS #REQUIRED>
	
	<!ELEMENT SharedValue EMPTY>
	<!ATTLIST SharedValue RefId IDREFS #REQUIRED>



<!--Data-->
<!ELEMENT Data  ( Relation | Array | ForeignKey )* >

   <!ELEMENT Relation (HypoRelation)*>
   <!ATTLIST Relation      Id           ID     #REQUIRED
                           LongName     IDREFS #REQUIRED
                           ShortName	CDATA  #REQUIRED
                           TargetObject IDREFS #REQUIRED
                           Columns      IDREFS #REQUIRED
                           PrimaryKey   IDREFS #IMPLIED
                           NativeAttr   IDREFS #IMPLIED
                           GivenAttr	IDREFS #IMPLIED
                           Profile      IDREFS #IMPLIED
                           EditLog			IDREFS #IMPLIED>
                           
   <!ELEMENT HypoRelation EMPTY>
   <!ATTLIST HypoRelation Id	ID	#REQUIRED
   						  Columns IDREFS #REQUIRED
   						  Type 	(YYMMDD 
   						  		 | YYMMDDhhmmss
   						  		 | hhmmss
   						  		 | YYYYMMDD
   						  		 | YYYYMMDDhhmmss
   						  		 | DegreeMinute
   						  		 | XYZ 
   						  		 | XY) #REQUIRED>
   						  		 
   <!-- TargetObject refers N <Name>s in the Appendix -->
   

   <!ELEMENT Array (EMPTY) >
   <!ATTLIST Array        Id           ID     #REQUIRED
                          LongName     IDREFS #REQUIRED
                          ShortName    CDATA  #REQUIRED 
                          Axes         IDREFS #REQUIRED 
                          Values       IDREFS #REQUIRED 
                          Explanation  IDREFS #IMPLIED >
   
   

<!--Analysis, Model-->

        <!ELEMENT Analysis (Unparsed) >
        <!ATTLIST Analysis          Id     ID     #REQUIRED
                                    System CDATA  #IMPLIED >

        <!ELEMENT Model (Unparsed) >
        <!ATTLIST Model         Id        ID     #REQUIRED
                                System    CDATA  #IMPLIED >

<!--Data Body-->

<!ELEMENT DataBody  (DataVector)* >



<!ELEMENT DataVector (#PCDATA)* >
<!ATTLIST DataVector    Id               ID           #REQUIRED
                        LongName         IDREFS       #IMPLIED
                        ShortName	 CDATA        #REQUIRED
                        Explanation      IDREFS       #IMPLIED

                        Precision        CDATA        #IMPLIED
                        Accuracy         CDATA        #IMPLIED

                        Missing          IDREF        #IMPLIED
                        MissingType      IDREF        #IMPLIED

                        Invalid          IDREF        #IMPLIED
                        InvalidType      IDREF        #IMPLIED

                        Truncation       IDREF        #IMPLIED
                        TruncationType   IDREF        #IMPLIED
                        TruncationLeft   CDATA        #IMPLIED
                        TruncationRight  CDATA        #IMPLIED

                        CensoringTime    CDATA        #IMPLIED
                        CensoringNumber  CDATA        #IMPLIED
                        RandomCensoring  IDREF        #IMPLIED
                        RandomCensoringType IDREF     #IMPLIED

                        Transform        IDREFS       #IMPLIED
                        Code             IDREFS       #IMPLIED
                        Length           CDATA        #IMPLIED

                        Unit             IDREFS       #IMPLIED
                        UnitDefinition   IDREFS       #IMPLIED
                        Scale ( Ratio | Interval | RatioInterval) #IMPLIED

                        DataType (Measurement | Ordinal | Cardinal | Classified | Mark | Logical | Void) #REQUIRED
                        Range    IDREFS        #IMPLIED

                        PopulationType (Stratum | Cluster) #IMPLIED
                        PopulationDefinition  IDREFS  #IMPLIED  

                        Access    IDREF #IMPLIED
                        Protocol  IDREF #IMPLIED
                        Query	  IDREF #IMPLIED
                        PostProcessing  IDREFS #IMPLIED
                        
                        RefId     IDREFS #IMPLIED
                        Total     CDATA  #IMPLIED
                        Numeral   IDREFS #IMPLIED
                        >

        <!-- LongName: Should Refer N <Name>(s) in <Appendix> -->
        <!-- Explanation: Should Refer N <Text>(s) in <Appendix> -->

        
        <!--   Transform:  Should Refer <Transform>(s) in <Appendix>, and
                the order of Transform must be in order of transforming. -->
        <!--   Code: Should Refer N <Code>(s) in <Appendix>. This defines a
                     mapping.-->

        <!--  Acess: Refer <Acess> in <Appendix> -->
        <!--  Protocol: Refer <Protocol> in <Appendix> -->
        <!--  Query: Refer <Query> in <Appendix> -->
        <!--  PostProcessing:  Refer <ScanFormat>, <PrintFormat>, <Arithmetic>
                               or <Media> in <Appendix>,  Processed in the order                               of the reference. Also <Code> can be 
                               referred in case of outside Data. It is regraded                                as the definition Code used in the Data. If it is                               Empty, then Code will be generated by DandD 
                               Server and the body of <Code> be replaced by 
                               the generated one-->
         <!-- Range : Refer N <Range> in <Appendix> -->


<!-- Appendix -->

<!ELEMENT Appendix (  Name | Text | Code | Ref | Unparsed |
                     RefList | Book | Article | Other |
                     Transform | Acess | Protocol | Query |ScanFormat |
                     PrintFormat | Arithmetic | Media )*>

<!--    Name: Plain text used for name
        Text: Text with links(refer) or unparsed objects
        Code: Quoted Strings -->

        <!ELEMENT Name  (#PCDATA) >
        <!ATTLIST Name Id ID #REQUIRED >

        <!ELEMENT Text (#PCDATA|Ref|Unparsed)* >
        <!ATTLIST Text  Id ID #REQUIRED >

        <!ELEMENT Code (#PCDATA)* >
        <!ATTLIST Code Id       ID      #REQUIRED 
                       Length   CDATA   #IMPLIED 
                       Order	CDATA	#IMPLIED >
        <!-- Code is a sequence of double quoted strings, seprated by a space -->

        <!ELEMENT Ref EMPTY>
        <!ATTLIST Ref   RefId  IDREFS #IMPLIED
                        URL    CDATA #IMPLIED >
        <!-- This is used in a Text for referring an object inside or outside -->

        <!ELEMENT Unparsed EMPTY>
        <!ATTLIST Unparsed file ENTITY #REQUIRED>


   <!-- Reference List -->

        <!ELEMENT RefList EMPTY >
        <!ATTLIST RefList       Id    ID      #REQUIRED
                                RefId IDREFS  #REQUIRED >

        <!-- RefList: organized for each languge and given IDREFS to <Book>
                                        <Article> or <Other>  -->

        <!ELEMENT Book (author, year, title, publisher, volume?,
                        number?, series?, address?, edition?, month?) >
        <!ATTLIST Book    Id   ID    #REQUIRED >

        <!ELEMENT Article (author, year, title, journal, volume?,
                                number?, pages, month?) >
        <!ATTLIST Article Id   ID    #REQUIRED >

        <!ELEMENT Other (author, year, title, access) >
        <!ATTLIST Other   Id    ID    #REQUIRED >

                            <!ELEMENT author    (#PCDATA) >
                            <!ELEMENT year      (#PCDATA) >
                            <!ELEMENT title     (#PCDATA) >
                            <!ELEMENT publisher (#PCDATA) >
                            <!ELEMENT volume    (#PCDATA) >
                            <!ELEMENT number    (#PCDATA) >
                            <!ELEMENT series    (#PCDATA) >
                            <!ELEMENT address   (#PCDATA) >
                            <!ELEMENT edition   (#PCDATA) >
                            <!ELEMENT journal   (#PCDATA) >
                            <!ELEMENT pages     (#PCDATA) >
                            <!ELEMENT month     (#PCDATA) >
                            <!ELEMENT access    (#PCDATA) >

 <!-- End of Reference List Definitions -->

 <!-- Transform -->

        <!ELEMENT Transform (Linear | Log | BoxCox | Cut |
                                Power | Ratio | Index)* >

                <!ELEMENT Linear EMPTY >
                <!ATTLIST Linear        Id           ID    #REQUIRED
                                        Location     CDATA #IMPLIED
                                        Scale        CDATA #IMPLIED
                                        OriginalUnit CDATA #IMPLIED>

                <!ELEMENT Log EMPTY >
                <!ATTLIST Log           Id           ID    #REQUIRED
                                        Base         CDATA #REQUIRED
                                        OriginalUnit CDATA #IMPLIED >        

                <!ELEMENT BoxCox EMPTY >
                <!ATTLIST BoxCox        Id           ID    #REQUIRED
                                        Lambda       CDATA #REQUIRED
                                        OriginalUnit CDATA #IMPLIED >

                 <!ELEMENT Cut EMPTY >
                 <!ATTLIST Cut           Id           ID    #REQUIRED
                                         Breaks       CDATA #REQUIRED
                                         OriginalUnit CDATA #IMPLIED >

                 <!ELEMENT Power EMPTY >
                 <!ATTLIST Power         Id           ID    #REQUIRED
                                         Alpha        CDATA #REQUIRED
                                         OriginalUnit CDATA #IMPLIED >

                 <!ELEMENT Ratio EMPTY >
                 <!ATTLIST Ratio         Id           ID    #REQUIRED
                                         Denominator  CDATA #REQUIRED
                                         OriginalUnit CDATA #IMPLIED >

                 <!ELEMENT Index EMPTY >
                 <!ATTLIST Index         Id           ID    #REQUIRED
                                         Denominator  CDATA #REQUIRED
                                         OriginalUnit CDATA #IMPLIED >

<!-- END of Transform definition -->



<!-- Access and Protocol -->

    <!ELEMENT Access EMPTY>
    <!ATTLIST Access Id ID #REQUIRED 
                     IP CDATA #REQUIRED 
                     UserId CDATA "anonymous" 
                     Password CDATA #IMPLIED >

    <!ELEMENT Protocol ( JDBC | FTP | HTTP)* >
    <!ATTLIST Protocol Id ID #REQUIRED 
                       Encoding             ( ASCII
                                             |Cp1252
                                             |ISO8859_1
                                             |UnicodeBig
                                             |UnicodeBigUnmarked
                                             |UnicodeLittle
                                             |UnicodeLittleUnmarked
                                             |UTF8
                                             |UTF-16
                                             |Big5
                                             |Cp037
                                             |Cp273
                                             |Cp277
                                             |Cp278
                                             |Cp280
                                             |Cp284
                                             |Cp285
                                             |Cp297
                                             |Cp420
                                             |Cp424
                                             |Cp437
                                             |Cp500
                                             |Cp737
                                             |Cp775
                                             |Cp838
                                             |Cp850
                                             |Cp852
                                             |Cp855
                                             |Cp856
                                             |Cp857
                                             |Cp858
                                             |Cp860
                                             |Cp861
                                             |Cp862
                                             |Cp863
                                             |Cp864
                                             |Cp865
                                             |Cp866
                                             |Cp868
                                             |Cp869
                                             |Cp870
                                             |Cp871
                                             |Cp874
                                             |Cp875
                                             |Cp918
                                             |Cp921
                                             |Cp922
                                             |Cp930
                                             |Cp933
                                             |Cp935
                                             |Cp937
                                             |Cp939
                                             |Cp942
                                             |Cp942C
                                             |Cp943
                                             |Cp943C
                                             |Cp948
                                             |Cp949
                                             |Cp949C
                                             |Cp950
                                             |Cp964
                                             |Cp970
                                             |Cp1006
                                             |Cp1025
                                             |Cp1026
                                             |Cp1046
                                             |Cp1097
                                             |Cp1098
                                             |Cp1112
                                             |Cp1122
                                             |Cp1123
                                             |Cp1124
                                             |Cp1140
                                             |Cp1141
                                             |Cp1142
                                             |Cp1143
                                             |Cp1144
                                             |Cp1145
                                             |Cp1146
                                             |Cp1147
                                             |Cp1148
                                             |Cp1149
                                             |Cp1250
                                             |Cp1251
                                             |Cp1253
                                             |Cp1254
                                             |Cp1255
                                             |Cp1256
                                             |Cp1257
                                             |Cp1258
                                             |Cp1381
                                             |Cp1383
                                             |Cp33722
                                             |EUC_CN
                                             |EUC_JP
                                             |EUC_KR
                                             |EUC_TW
                                             |GBK
                                             |ISO2022CN
                                             |ISO2022CN_CNS
                                             |ISO2022CN_GB
                                             |ISO2022JP
                                             |ISO2022KR
                                             |ISO8859_2
                                             |ISO8859_3
                                             |ISO8859_4
                                             |ISO8859_5
                                             |ISO8859_6
                                             |ISO8859_7
                                             |ISO8859_8
                                             |ISO8859_9
                                             |ISO8859_13
                                             |ISO8859_15_FDIS
                                             |JIS0201
                                             |JIS0208
                                             |JIS0212
                                             |JISAutoDetect
                                             |Johab
                                             |KOI8_R
                                             |MS874
                                             |MS932
                                             |MS936
                                             |MS949
                                             |MS950
                                             |MacArabic
                                             |MacCentralEurope
                                             |MacCroatian
                                             |MacCyrillic
                                             |MacDingbat
                                             |MacGreek
                                             |MacHebrew
                                             |MacIceland
                                             |MacRoman
                                             |MacRomania
                                             |MacSymbol
                                             |MacThai
                                             |MacTurkish
                                             |MacUkraine
                                             |Shift-JIS
                                             |SJIS
                                             |TIS620
                                                     ) "UTF-16"
                           Physical (TCP|UDP) "TCP">

                <!ELEMENT JDBC (#PCDATA)* >
                <!ATTLIST JDBC DatabaseName CDATA #REQUIRED 
                               DatabaseServerType (postgresql|postgresql7.3|access) "postgresql7.3" >

                <!ELEMENT FTP EMPTY >
                <!ATTLIST FTP Suffix CDATA #REQUIRED 
                              Offset CDATA #IMPLIED 
                              Lines CDATA #IMPLIED >

                <!ELEMENT HTTP EMPTY>
                <!ATTLIST HTTP Suffix CDATA #REQUIRED 
                               Offset CDATA #IMPLIED 
                               Lines CDATA #IMPLIED >
                        
                <!ELEMENT HTTPS EMPTY>
                <!ATTLIST HTTPS Suffix CDATA #REQUIRED 
                               Offset CDATA #IMPLIED 
                               Lines CDATA #IMPLIED >


<!-- End of Acess and Protocol -->

<!-- New Element !!!  Query -->
	<!ELEMENT Query (#PCDATA)>
	<!ATTLIST Query Id ID #REQUIRED
	                Type (SQL|Parameter) "SQL">
	                
<!--PostProcessing -->

    <!ELEMENT ScanFormat (#PCDATA) >
    <!ATTLIST ScanFormat Id ID #REQUIRED >

    <!ELEMENT PrintFormat (#PCDATA) >
    <!ATTLIST PrintFormat Id ID #REQUIRED >

    <!ELEMENT Arithmetic  (#PCDATA) >
    <!ATTLIST Arithmetic Id ID #REQUIRED>

    <!ELEMENT Media (Movie?) >
    <!ATTLIST Media Id ID #REQUIRED 
                        Format CDATA #REQUIRED>

    <!ELEMENT Movie EMPTY>
    <!ATTLIST Movie FrameInterval CDATA #REQUIRED
                    CODEC         CDATA #IMPLIED >

<!-- End of PostProcessing -->

<!-- Log -->
	<!ELEMENT EditLog (RemovedColumns | RemovedRows | Transpose)*>
	<!ATTLIST EditLog  Id 		 ID    #REQUIRED 
				   TimeStamp CDATA #REQUIRED 
				   File      CDATA #REQUIRED
				   TableName CDATA #REQUIRED
				   Separator CDATA #IMPLIED>
	<!ELEMENT RemovedColumns EMPTY>
	<!ATTLIST RemovedColumns Number CDATA #REQUIRED>
	<!ELEMENT RemovedRows EMPTY >
	<!ATTLIST RemovedRows Number CDATA #REQUIRED>
	<!ELEMENT Transpose EMPTY>
<!-- End of Log -->

<!-- Range -->
	<!ELEMENT Range EMPTY>
	<!ATTLIST Range Id		ID #REQUIRED
				    Max		CDATA #IMPLIED
				    Min		CDATA #IMPLIED
				    Sup		CDATA #IMPLIED
				    Inf		CDATA #IMPLIED
				    >
<!-- End of Range -->                       
<!-- ENTITY -->
<!ENTITY nbs " " >

<!-- End of DTD -->
