--- messaging/manakai/lib/Message/Markup/Atom.dis 2006/05/19 11:02:11 1.4 +++ messaging/manakai/lib/Message/Markup/Atom.dis 2006/08/17 12:12:02 1.10 @@ -43,7 +43,7 @@ @DISCore:author: DISCore|Wakaba @License: license|Perl+MPL @Date: - $Date: 2006/05/19 11:02:11 $ + $Date: 2006/08/17 12:12:02 $ @Require: @@Module: @@ -76,6 +76,8 @@ http://suika.fam.cx/~wakaba/archive/2004/dom/main# @dx: http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/Error/DOMException# + @dxm: + http://suika.fam.cx/~wakaba/archive/2004/dis/XML# @ecore: http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/Error/Core/ @f: @@ -86,6 +88,8 @@ http://www.w3.org/1999/xhtml @idl: http://suika.fam.cx/~wakaba/archive/2004/dis/IDL# + @infoset: + http://www.w3.org/2001/04/infoset# @kwd: http://suika.fam.cx/~wakaba/archive/2005/rfc2119/ @lang: @@ -164,6 +168,22 @@ @@ForCheck: !=ManakaiDOM|ManakaiDOM ElementTypeBinding: + @Name: ATTR + @ElementType: + dis:ResourceDef + @ShadowContent: + @@DISCore:resourceType: + @@@@: DISLang|Attribute + @@@ForCheck: ManakaiDOM|ForIF + @@DISCore:resourceType: + @@@@: DISLang|Attribute + @@@ForCheck: ManakaiDOM|ForClass + @@DISCore:resourceType: + @@@@: mv|AttributeType + @@@ForCheck: s|ForML + @@ForCheck: !=ManakaiDOM|ManakaiDOM + +ElementTypeBinding: @Name: Get @ElementType: dis:ResourceDef @@ -286,6 +306,47 @@ @@f:implements: AtomFeature10 ElementTypeBinding: + @Name: IFClsConstructDef + @ElementType: + dis:ResourceDef + @ShadowContent: + @@DISCore:resourceType: + @@@@: dis|MultipleResource + @@@ForCheck: + !ManakaiDOM|ForIF !ManakaiDOM|ForClass !s|ForML !mv|ForCM !mv|ForAG + @@resourceFor: ManakaiDOM|ForIF + @@resourceFor: ManakaiDOM|ForClass + @@resourceFor: mv|ForCM + @@resourceFor: mv|ForAG + @@For: ManakaiDOM|ManakaiDOM + + @@DISCore:resourceType: + @@@@: DISLang|Interface + @@@ForCheck: ManakaiDOM|ForIF + + @@DISCore:resourceType: + @@@@: DISLang|Class + @@@ForCheck: ManakaiDOM|ForClass + @@Implement: + @@@@: ||ManakaiDOM|ManakaiDOM||ManakaiDOM|ForIF + @@@ContentType: DISCore|TFPQNames + @@@ForCheck: ManakaiDOM|ForClass ManakaiDOM|ManakaiDOM + @@Implement: + @@@@: ||ManakaiDOM|ManakaiDOMLatest||ManakaiDOM|ForIF + @@@ContentType: DISCore|TFPQNames + @@@ForCheck: ManakaiDOM|ForClass ManakaiDOM|ManakaiDOMLatest + + @@DISCore:resourceType: + @@@@: mv|AttributeTypeGroup + @@@ForCheck: mv|ForAG + + @@DISCore:resourceType: + @@@@: mv|ElementContentModel + @@@ForCheck: mv|ForCM + + @@f:implements: AtomFeature10 + +ElementTypeBinding: @Name: IFQName @ElementType: dis:QName @@ -315,6 +376,34 @@ @@ContentType: DISCore|QName ElementTypeBinding: + @Name: CMQName + @ElementType: + dis:QName + @ShadowContent: + @@ForCheck: mv|ForCM + +ElementTypeBinding: + @Name: CMName + @ElementType: + mv:elementContentModelName + @ShadowContent: + @@ForCheck: mv|ForCM + +ElementTypeBinding: + @Name: AGQName + @ElementType: + dis:QName + @ShadowContent: + @@ForCheck: mv|ForAG + +ElementTypeBinding: + @Name: AGName + @ElementType: + mv:attributeTypeGroupName + @ShadowContent: + @@ForCheck: mv|ForAG + +ElementTypeBinding: @Name: IFISA @ElementType: dis:ISA @@ -487,40 +576,97 @@ ModuleSetDef: @QName: Atom @mv:id: atom + @mv:vid: 10 @enLN: Atom @mv:version: 1.0 - @mv:contains: AtomFeed + @mv:contains: AtomDatatypes + @mv:contains: AtomProperties @mv:contains: AtomEntry - @mv:contains: AtomProperty + @mv:contains: AtomFeed + @mv:contains: AtomQName + + @infoset:namespaceName: + http://www.w3.org/2005/Atom + @infoset:prefix: atom ModuleDef: @QName: AtomFeed @mv:id: feed @enLN: Feed + @mv:contains: feed-prop @mv:contains: atom|feed ModuleDef: @QName: AtomEntry @mv:id: entry @enLN: Entry + @mv:contains: entry-prop @mv:contains: atom|entry ModuleDef: - @QName: AtomProperty - @mv:id: prop - @enLN: Property + @QName: AtomProperties + @mv:id: props + @enLN: Properties @mv:contains: atom|content + @mv:contains: atom|contributor @mv:contains: atom|category @mv:contains: atom|generator - @mv:contains: atom|source @mv:contains: atom|link @mv:contains: atom|author @mv:contains: atom|published @mv:contains: atom|updated + @mv:contains: atom|icon @mv:contains: atom|id + @mv:contains: atom|logo + @mv:contains: atom|rights + @mv:contains: atom|subtitle + @mv:contains: atom|summary @mv:contains: atom|title + @mv:contains: source-prop + @mv:contains: atom|source + +ModuleDef: + @QName: AtomDatatypes + @mv:id: datatypes + @enLN: Datatypes + + @mv:contains: atomNCName + @mv:contains: atomMediaType + @mv:contains: atomLanguageTag + @mv:contains: atomUri + @mv:contains: atomUriCM + @mv:contains: atomEmailAddress + @mv:contains: atomEmailAddressCM + + @mv:contains: undefinedAttributes + @mv:contains: undefinedContent + @mv:contains: atomCommonAttributes + + @mv:contains: simpleExtensionElements + @mv:contains: structuredExtensionElements + @mv:contains: extensionElements + + @mv:contains: TextAG + @mv:contains: TextCM + + @mv:contains: atom|name @mv:contains: atom|email @mv:contains: atom|uri + @mv:contains: PersonAG + @mv:contains: person-prop + @mv:contains: PersonCM + + @mv:contains: DateAG + @mv:contains: DateCM + +ResourceDef: + @QName: AtomQName + @enLN: Qualified Names + @mv:id: qname + @For: =ManakaiDOM|ManakaiDOMLatest + @DISCore:resourceType: mv|XMLDTDQNameModule + + @mv:contains: Atom ElementTypeBinding: @Name: ModuleSetDef @@ -1464,6 +1610,107 @@ $test->assert_isa ($doc, ); ##AtomEntryDocument +AGDef: + @QName: atomCommonAttributes + @enFN: common attributes + @mv:attributeTypeGroupName: common + + @ATDef: + @@mv:attributeTypeName: xml|base + @@mv:attributeValueType: atomUri + + @ATDef: + @@mv:attributeTypeName: xml|lang + @@mv:attributeValueType: atomLanguageTag + + @mv:refers: undefinedAttributes +##atomCommonAttributes + +STDef: + @QName: atomNCName + @mv:datatypeEntityName: NCName + #subsetOf: xsd|string + #minLength, pattern + +STDef: + @QName: atomMediaType + @mv:datatypeEntityName: MediaType + #subsetOf xsd|string + # pattern + +STDef: + @QName: atomLanguageTag + @mv:datatypeEntityName: LangaugeTag + #subsetOf: xsd|string + #pattern + +STDef: + @QName: atomUri + @mv:datatypeEntityName: URI + #aliasfor text +STCDef: + @QName: atomUriCM + @mv:elementContentModelName: URI + @cm: (dxm|PCDATA||ManakaiDOM|all)* + +STDef: + @QName: atomEmailAddress + @mv:datatypeEntityName: EmailAddress + #subsetOf xsd|string + #pattern +STCDef: + @QName: atomEmailAddressCM + @mv:elementContentModelName: EmailAddress + @cm: (dxm|PCDATA||ManakaiDOM|all)* + +ElementTypeBinding: + @Name: AGDef + @ElementType: + dis:ResourceDef + @ShadowContent: + @@DISCore:resourceType: mv|AttributeTypeGroup + @@For: =ManakaiDOM|ManakaiDOMLatest + +ElementTypeBinding: + @Name: ATDef + @ElementType: + dis:ResourceDef + @ShadowContent: + @@DISCore:resourceType: mv|AttributeType + @@For: =ManakaiDOM|ManakaiDOMLatest + +ElementTypeBinding: + @Name: ECDef + @ElementType: + dis:ResourceDef + @ShadowContent: + @@DISCore:resourceType: mv|ElementTypeClass + @@For: =ManakaiDOM|ManakaiDOMLatest + +ElementTypeBinding: + @Name: EMDef + @ElementType: + dis:ResourceDef + @ShadowContent: + @@DISCore:resourceType: mv|ElementTypeClassMix + @@For: =ManakaiDOM|ManakaiDOMLatest + +ElementTypeBinding: + @Name: STDef + @ElementType: + dis:ResourceDef + @ShadowContent: + @@DISCore:resourceType: mv|XMLDTDDatatypeEntity + @@For: =ManakaiDOM|ManakaiDOMLatest + +ElementTypeBinding: + @Name: STCDef + @ElementType: + dis:ResourceDef + @ShadowContent: + @@DISCore:resourceType: mv|ElementContentModel + @@For: =ManakaiDOM|ManakaiDOMLatest + IFClsDef: @IFQName: AtomElement @ClsQName: ManakaiAtomElement @@ -1522,13 +1769,35 @@ @@ContentType: DISCore|QName @ForCheck: =ManakaiDOM|all -IFClsDef: +ElementTypeBinding: + @Name: cm + @ElementType: + mv:elementContentModel + @ShadowContent: + @@ContentType: lang|dcmodel + +IFClsConstructDef: @IFQName: AtomTextConstruct @ClsQName: ManakaiAtomTextConstruct + @AGQName: TextAG + @AGName: text + @CMQName: TextCM + @CMName: text @IFISA: AtomElement @ClsISA: ManakaiAtomElement + @mv:refers: atomCommonAttributes + + @cm: + dxm|ANY||ManakaiDOM|all + @enImplNote: + @@ddid:cm + @@@: + {TODO:: + (dxm|PCDATA||ManakaiDOM|all | html|div)* + } + @enDesc: The interface provides convenience methods and attributes for nodes @@ -1537,10 +1806,10 @@ interface. A Text construct contains human-readable text, usually in - small quantities. The content of Text constructs is + small quantities. The content of a Text construct is Language-Sensitive. - @Attr: + @ATTR: @@Name: type @@enDesc: The attribute of the element. @@ -1648,13 +1917,22 @@ $test->assert_equals ($el->, $con); ##AtomTextConstruct -IFClsDef: +IFClsConstructDef: @IFQName: AtomPersonConstruct @ClsQName: ManakaiAtomPersonConstruct + @AGQName: PersonAG + @AGName: person + @CMQName: PersonCM + @CMName: person @IFISA: AtomElement @ClsISA: ManakaiAtomElement + @mv:refers: atomCommonAttributes + + @cm: + (person-prop+) + @enDesc: The interface provides convenience methods and attributes for nodes @@ -1702,7 +1980,7 @@ @@Name: nameElement @@enDesc: The child element of the node. - @@Type: AtomElement + @@Type: AtomNameElement @@Get: @@@enDesc: It child element> @@ -1787,13 +2065,36 @@ }__; ##AtomPersonConstruct -IFClsDef: +ECDef: + @QName: person-prop + @mv:elementTypeClassName: person-prop + @mv:refers: atom|name + @mv:refers: atom|uri + @mv:refers: atom|email + @mv:refers: extensionElements + +IFClsConstructDef: @IFQName: AtomDateConstruct @ClsQName: ManakaiAtomDateConstruct + @AGQName: DateAG + @AGName: date + @CMQName: DateCM + @CMName: date @IFISA: AtomElement @ClsISA: ManakaiAtomElement + @mv:refers: atomCommonAttributes + + @cm: + (dxm|PCDATA||ManakaiDOM|all)* + @enImplNote: + @@ddid: cm + @@@: + {TODO:: + xsd|dateTime + } + @enDesc: The interface provides convenience methods and attributes for nodes @@ -1864,6 +2165,23 @@ } ##AtomDateConstruct +ECDef: + @QName: feed-prop + @mv:elementTypeClassName: feed-prop + @mv:refers: atom|author + @mv:refers: atom|category + @mv:refers: atom|contributor + @mv:refers: atom|generator + @mv:refers: atom|icon + @mv:refers: atom|id + @mv:refers: atom|link + @mv:refers: atom|logo + @mv:refers: atom|rights + @mv:refers: atom|subtitle + @mv:refers: atom|title + @mv:refers: atom|updated + @mv:refers: extensionElements + IFClsETDef: @IFQName: AtomFeedElement @ETQName: atom|feed @@ -1873,6 +2191,11 @@ @IFISA: AtomElement @ClsISA: ManakaiAtomElement + @mv:refers: atomCommonAttributes + + @cm: + (feed-prop+, atom|entry*) + @enDesc: The element is the document element of an Atom Feed Document. @@ -2560,6 +2883,23 @@ (, 'lang')); ##AtomFeedElement +ECDef: + @QName: entry-prop + @mv:elementTypeClassName: entry-prop + @mv:refers: atom|author + @mv:refers: atom|category + @mv:refers: atom|content + @mv:refers: atom|contributor + @mv:refers: atom|id + @mv:refers: atom|link + @mv:refers: atom|published + @mv:refers: atom|rights + @mv:refers: atom|source + @mv:refers: atom|summary + @mv:refers: atom|title + @mv:refers: atom|updated + @mv:refers: extensionElements + IFClsETDef: @IFQName: AtomEntryElement @ETQName: atom|entry @@ -2569,6 +2909,11 @@ @IFISA: AtomElement @ClsISA: ManakaiAtomElement + @mv:refers: atomCommonAttributes + + @cm: + (entry-prop+) + @enDesc: The element represents an individual entry, acting as a container for metadata and data @@ -3089,13 +3434,100 @@ ##AtomEntryElement IFClsETDef: + @IFQName: AtomIdElement + @ETQName: atom|id + @ETRQName: atom|id + @ClsQName: ManakaiAtomIdElement + + @IFISA: AtomElement + @ClsISA: ManakaiAtomElement + + @mv:refers: atomCommonAttributes + + @cm: atomUriCM +##AtomIdElement + +IFClsETDef: + @IFQName: AtomIconElement + @ETQName: atom|icon + @ETRQName: atom|icon + @ClsQName: ManakaiAtomIconElement + + @IFISA: AtomElement + @ClsISA: ManakaiAtomElement + + @mv:refers: atomCommonAttributes + + @cm: atomUriCM +##AtomIconElement + +IFClsETDef: + @IFQName: AtomNameElement + @ETQName: atom|name + @ETRQName: atom|name + @ClsQName: ManakaiAtomNameElement + + @IFISA: AtomElement + @ClsISA: ManakaiAtomElement + + # no common attribs + @cm: TextCM +##AtomNameElement + +IFClsETDef: + @IFQName: AtomUriElement + @ETQName: atom|uri + @ETRQName: atom|uri + @ClsQName: ManakaiAtomUriElement + + @IFISA: AtomElement + @ClsISA: ManakaiAtomElement + + # no common attribs + @cm: atomUriCM +##AtomUriElement + +IFClsETDef: + @IFQName: AtomEmailElement + @ETQName: atom|email + @ETRQName: atom|email + @ClsQName: ManakaiAtomEmailElement + + @IFISA: AtomElement + @ClsISA: ManakaiAtomElement + + # no common attribs + @cm: atomEmailAddressCM +##AtomEmailElement + +IFClsETDef: + @IFQName: AtomLogoElement + @ETQName: atom|logo + @ETRQName: atom|logo + @ClsQName: ManakaiAtomLogoElement + + @IFISA: AtomElement + @ClsISA: ManakaiAtomElement + + @mv:refers: atomCommonAttributes + + @cm: atomUriCM +##AtomLogoElement + +IFClsETDef: @IFQName: AtomContentElement @ETQName: atom|content + @ETRQName: atom|content @ClsQName: ManakaiAtomContentElement @IFISA: AtomElement @ClsISA: ManakaiAtomElement + @mv:refers: atomCommonAttributes + + @cm: + dxm|ANY||ManakaiDOM|all + @enDesc: The element either contains or links to the content of the entry. @@ -3339,10 +3771,13 @@ IFClsETDef: @IFQName: AtomAuthorElement @ETQName: atom|author + @ETRQName: atom|author @ClsQName: ManakaiAtomAuthorElement @IFISA: AtomPersonConstruct @ClsISA: ManakaiAtomPersonConstruct + @mv:refers: PersonAG + @mv:elementContentModel: PersonCM @enDesc: The element is a Person construct that @@ -3352,11 +3787,16 @@ IFClsETDef: @IFQName: AtomCategoryElement @ETQName: atom|category + @ETRQName: atom|category @ClsQName: ManakaiAtomCategoryElement @IFISA: AtomElement @ClsISA: ManakaiAtomElement + @mv:refers: atomCommonAttributes + + @cm: undefinedContent + @enDesc: The element conveys information abut a category associated with an entry or feed. @@ -3465,10 +3905,13 @@ IFClsETDef: @IFQName: AtomContributorElement @ETQName: atom|contributor + @ETRQName: atom|contributor @ClsQName: ManakaiAtomContributorElement @IFISA: AtomPersonConstruct @ClsISA: ManakaiAtomPersonConstruct + @mv:refers: PersonAG + @mv:elementContentModel: PersonCM @enDesc: The element is a Person construct that @@ -3479,11 +3922,17 @@ IFClsETDef: @IFQName: AtomGeneratorElement @ETQName: atom|generator + @ETRQName: atom|generator @ClsQName: ManakaiAtomGeneratorElement @IFISA: AtomElement @ClsISA: ManakaiAtomElement + @mv:refers: atomCommonAttributes + + @cm: + (dxm|PCDATA||ManakaiDOM|all)* + @enDesc: The element identifies the agent used to generate a feed. @@ -3559,16 +4008,21 @@ IFClsETDef: @IFQName: AtomLinkElement @ETQName: atom|link + @ETRQName: atom|link @ClsQName: ManakaiAtomLinkElement @IFISA: AtomElement @ClsISA: ManakaiAtomElement + @mv:refers: atomCommonAttributes + + @cm: undefinedContent + @enDesc: The element defines a reference from an entry or feed to a Web resource. - @Attr: + @ATTR: @@Name: href @@enDesc: The attribute of the element. @@ -3576,7 +4030,7 @@ It attribute> of the node. @@Type: DOMString - @@Type: DOMURI + @@actualType: DOMURI @@Get: @@@nullCase: @@@@enDesc: @@ -3602,7 +4056,7 @@ $given => $given, }__; - @Attr: + @ATTR: @@Name: rel @@enDesc: The attribute of the element. @@ -3612,6 +4066,7 @@ a few exceptions. The default value be . @@Type: DOMString + @@actualType: DOMURI @@Get: @@@enDesc: If the algorithm returns a string that does not contain @@ -3685,7 +4140,7 @@ $test->assert_equals ($el->, ); - @Attr: + @ATTR: @@Name: type @@enDesc: The attribute of the element. @@ -3718,7 +4173,7 @@ $given => $given, }__; - @Attr: + @ATTR: @@Name: hreflang @@enDesc: The attribute of the element. @@ -3751,7 +4206,7 @@ $given => $given, }__; - @Attr: + @ATTR: @@Name: title @@enDesc: The attribute of the element. @@ -3784,7 +4239,7 @@ $given => $given, }__; - @Attr: + @ATTR: @@Name: length @@enDesc: The attribute of the element. @@ -3821,10 +4276,13 @@ IFClsETDef: @IFQName: AtomPublishedElement @ETQName: atom|published + @ETRQName: atom|published @ClsQName: ManakaiAtomPublishedElement @IFISA: AtomDateConstruct @ClsISA: ManakaiAtomDateConstruct + @mv:refers: DateAG + @mv:elementContentModel: DateCM @enDesc: The element is a Date construct @@ -3838,10 +4296,13 @@ IFClsETDef: @IFQName: AtomRightsElement @ETQName: atom|rights + @ETRQName: atom|rights @ClsQName: ManakaiAtomRightsElement @IFISA: AtomTextConstruct @ClsISA: ManakaiAtomTextConstruct + @mv:refers: TextAG + @mv:elementContentModel: TextCM @enDesc: The element is a Text construct @@ -3849,14 +4310,37 @@ over an entry or feed. ##AtomRightsElement +ECDef: + @QName: source-prop + @mv:elementTypeClassName: source-prop + @mv:refers: atom|author + @mv:refers: atom|category + @mv:refers: atom|contributor + @mv:refers: atom|generator + @mv:refers: atom|icon + @mv:refers: atom|id + @mv:refers: atom|link + @mv:refers: atom|logo + @mv:refers: atom|rights + @mv:refers: atom|subtitle + @mv:refers: atom|title + @mv:refers: atom|updated + @mv:refers: extensionElements + IFClsETDef: @IFQName: AtomSourceElement @ETQName: atom|source + @ETRQName: atom|source @ClsQName: ManakaiAtomSourceElement @IFISA: AtomElement @ClsISA: ManakaiAtomElement + @mv:refers: atomCommonAttributes + + @cm: + (source-prop*) + @Attr: @@Name: authorElements @@enDesc: @@ -4061,10 +4545,13 @@ IFClsETDef: @IFQName: AtomSubtitleElement @ETQName: atom|subtitle + @ETRQName: atom|subtitle @ClsQName: ManakaiAtomSubtitleElement @IFISA: AtomTextConstruct @ClsISA: ManakaiAtomTextConstruct + @mv:refers: TextAG + @mv:elementContentModel: TextCM @enDesc: The element is a Text construct @@ -4074,10 +4561,13 @@ IFClsETDef: @IFQName: AtomSummaryElement @ETQName: atom|summary + @ETRQName: atom|summary @ClsQName: ManakaiAtomSummaryElement @IFISA: AtomTextConstruct @ClsISA: ManakaiAtomTextConstruct + @mv:refers: TextAG + @mv:elementContentModel: TextCM @enDesc: The element is a Text construct @@ -4087,10 +4577,13 @@ IFClsETDef: @IFQName: AtomTitleElement @ETQName: atom|title + @ETRQName: atom|title @ClsQName: ManakaiAtomTitleElement @IFISA: AtomTextConstruct @ClsISA: ManakaiAtomTextConstruct + @mv:refers: TextAG + @mv:elementContentModel: TextCM @enDesc: The element is a Text construct @@ -4100,10 +4593,13 @@ IFClsETDef: @IFQName: AtomUpdatedElement @ETQName: atom|updated + @ETRQName: atom|updated @ClsQName: ManakaiAtomUpdatedElement @IFISA: AtomDateConstruct @ClsISA: ManakaiAtomDateConstruct + @mv:refers: DateAG + @mv:elementContentModel: DateCM @enDesc: The element is a Date construct @@ -4194,3 +4690,33 @@ @@For: ManakaiDOM|DOM3 @@For: =ManakaiDOM|all @@Type: idl|boolean||ManakaiDOM|all + +ECDef: + @QName: simpleExtensionElements + @mv:elementTypeClassName: simple.extra + @DISCore:resourceType: mv|ElementTypeAdditionalClass + +ECDef: + @QName: structuredExtensionElements + @mv:elementTypeClassName: structured.extra + @DISCore:resourceType: mv|ElementTypeAdditionalClass + +EMDef: + @QName: extensionElements + @mv:elementTypeClassName: extra + @mv:refers: simpleExtensionElements + @mv:refers: structuredExtensionElements + @DISCore:resourceType: mv|ElementTypeAdditionalClass + +AGDef: + @QName: undefinedAttributes + @mv:attributeTypeGroupName: common.extra + +ResourceDef: + @QName: undefinedContent + @mv:elementContentModelName: undefined + @For: =ManakaiDOM|ManakaiDOMLatest + @DISCore:resourceType: mv|ElementContentModel + @cm: dxm|ANY||ManakaiDOM|all + @enImplNote: + (text | anyForeignElement)*