AttributeRepetitionDiv : WOGenericContainer { elementName = "div"; class = d2wContext.classForAttributeRepetitionWrapper; } AttributeRepetition: WORepetition { _unroll = true; item = propertyKey; list = currentSectionKeys; index = index; } IsNotOmitted : WOConditional { condition = isKeyOmitted; negate = true; } AttributeValue: WOSwitchComponent { WOComponentName = d2wContext.componentName; localContext = d2wContext; object = object; } LineDiv : WOGenericContainer { elementName = "div"; class = lineDivClass; } EmptyLabelSpan : WOGenericContainer { elementName = "span"; class = d2wContext.classForEmptyLabelSpan; } LabelWrapper : WOGenericContainer { elementName = "span"; class = d2wContext.classForLabelSpan; } AttributeWrapper : WOGenericContainer { elementName = "span"; class = d2wContext.classForAttributeValue; } HasPropertyName: WOConditional { condition = hasPropertyName; } HasSectionName: ERXNonZeroConditional { condition = currentSection.name.trim.length; } HasNoPropertyName: WOConditional { condition = hasPropertyName; negate = true; } PropertyName: WOSwitchComponent { WOComponentName = d2wContext.propertyNameComponentName; localContext = d2wContext; } SafeWrapper : D2WEmptyWrapper { } Section: WOSwitchComponent { WOComponentName = d2wContext.sectionComponentName; d2wContext = d2wContext; } Sections: WORepetition { list=sectionsContents; item=currentSection; } Div1 : WOGenericContainer { elementName = "div"; class = d2wContext.classForSection; }