The schema changes are in GN4Base.xsd. The best method to find the parts you need to add is to compare in Notepad++ your GN4Base.xsd with the one for the version 2.0.
However, here is the summary of changes. The statements to add are highlighted. The non-highlighted schema text (above and below the highlighted part) serves to locate the place where to insert new code. If you find more occurrences of the same code elsewhere, please use a compare tool to locate the correct insertion point.
Changes in folderObject
Locate <xs:complexType name="folderObject" abstract="true" gs:stateAttr="folderRef:createCarbon" >, and then add the highlighted lines:
<xsl:attribute name="folderKind">
<xsl:value-of select="gn4:folderRef/nav:refObject/gn4:folder/@folderKind"/>
</xsl:attribute>
<xsl:if test="@nav:originalStateId">
<xsl:attribute name="sentDate">
<xsl:value-of select="$context/oc:OperationContext/@UtcNow"/>
</xsl:attribute>
<xsl:element name="senderRef">
<xsl:attribute name="idref">
<xsl:value-of select="$context/lc:LoginContext/@UserId"/>
</xsl:attribute>
</xsl:element>
</xsl:if>
<xsl:if test="not(@id)" >
<creatorRef>
<xsl:attribute name="idref">
<xsl:value-of select="$context/lc:LoginContext/@UserId"/>
</xsl:attribute>
</creatorRef>
</xsl:if>
Then, within the same folderObject, add the highlighted lines:
<xs:element name="modifierRef" type="reference" minOccurs="0" gs:refer="user" gs:compute="true" />
<xs:element name="senderRef" type="reference" minOccurs="0" gs:refer="user" gs:compute="true" >
<xs:annotation>
<xs:documentation>User that sent this object as part of the workflow. Automatically computed.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="variants" minOccurs="0" gs:access="Special">
Then, add the highlighted lines:
</xs:element>
<xs:group ref="folderObjectExtra"/>
</xs:sequence>
<xs:attribute name="sentDate" type="xs:dateTime" use="optional" gs:compute="true">
<xs:annotation>
<xs:appinfo>
<xs:documentation>The date and time the object was sent. Automatically computed.</xs:documentation>
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="creationDate" type="xs:dateTime" use="optional" gs:compute="true">
Changes in calendarObject
Locate <xs:complexType name="calendarObject" gs:key="uid" abstract="true" gs:stateAttr="calendarRef" > and then below </xsl:if> and above <xsl:attribute name="autoEndDate">, add the highlighted lines:
<xsl:if test="not(@id)" >
<xsl:attribute name="creationDate">
<xsl:value-of select="$context/oc:OperationContext/@UtcNow"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@nav:originalStateId">
<xsl:attribute name="sentDate">
<xsl:value-of select="$context/oc:OperationContext/@UtcNow"/>
</xsl:attribute>
</xsl:if>
<xsl:attribute name="autoEndDate">
<xsl:choose>
Then, add the highlighted lines:
<xsl:if test="$context/oc:OperationContext/@Kind!='Upgrade'" >
<modifierRef>
<xsl:attribute name="idref">
<xsl:value-of select="$context/lc:LoginContext/@UserId"/>
</xsl:attribute>
</modifierRef>
</xsl:if>
<xsl:if test="@nav:originalStateId">
<xsl:element name="senderRef">
<xsl:attribute name="idref">
<xsl:value-of select="$context/lc:LoginContext/@UserId"/>
</xsl:attribute>
</xsl:element>
</xsl:if>
</calendarObject>
</gs:compute>
</xs:appinfo>
</xs:annotation>
Then, add the highlighted lines:
<xs:element name="calendarRef" type="reference" gs:refer="calendar">
<xs:annotation>
<xs:documentation>Reference to the calendar this object belongs to</xs:documentation>
<xs:appinfo>
<gs:ui>
<gs:template
kind="Tree"
refAttributes="calendarParent"
homeFolderOnly="false"
displayCompletePath="false" />
</gs:ui>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="senderRef" type="reference" minOccurs="0" gs:refer="user" gs:compute="true" >
<xs:annotation>
<xs:documentation>User that sent this object as part of the workflow. Automatically computed.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="creatorRef" type="reference" minOccurs="0" gs:refer="user" gs:compute="true">
<xs:annotation>
<xs:documentation>User that created this object. Automatically computed.</xs:documentation>
</xs:annotation>
</xs:element>
And also here:
<xs:attribute name="uid" use="required">
<xs:annotation>
<xs:documentation>The unique identifier of the calendar object. Corresponds to the iCalendar 'UID' property.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="sentDate" type="xs:dateTime" use="optional" gs:compute="true">
<xs:annotation>
<xs:appinfo>
<xs:documentation>The date and time the object was sent. Automatically computed.</xs:documentation>
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="creationDate" type="xs:dateTime" use="optional" gs:compute="true">
<xs:annotation>
<xs:documentation>When the object was created. Automatically computed. Corresponds to the iCalendar 'created' property.</xs:documentation>
</xs:annotation>
</xs:attribute>
|