Input: [Identifier] Agreement [Comment] Must contain at least the Party entity with Assigner role and a Party with Assignee role. The latter being granted the terms of the Agreement from the former. [Semantics]

Output: Policy expressions that are formal contracts (or licenses) stipulating all the terms of usage and all the parties involved.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group

Table 2.1: Terms for the entity Type of the Policy Entity


Input: [Identifier] Offer [Comment] Must contain a Party entity with Assigner role. The Offer may contain a Party entity with Assignee role, but does not grant any privileges to that Party. [Semantics]

Output: Policy expressions that propose terms of usage from an Asset owner

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] Privacy [Comment] Must contain at least the Party entity with Assigner role and a Party with Assignee role. Must also contain a Duty on the assignee related to obligations towards managing the assigner’s Asset containing personal information. The Assignee is being granted the terms of the Privacy policy from the Assigner. [Semantics]

Output: Policy expressions that stipulate the terms of usage over personal information.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] Request [Comment] Must contain a Party entity with Assignee role. The Request may also contain the Party entity with Assigner role if this is known. No privileges are granted to any Party. [Semantics]

Output: Policy expressions that propose terms of usage to an Asset owner

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] Set [Comment] The Set is aimed at scenarios where there is an open criteria for the semantics of the policy expressions and typically refined by other systems/profiles that process the information at a later time. No privileges are granted to any Party. [Semantics]

Output: Policy expressions that consists of entities from the complete model

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] Ticket [Comment] May contain the Party entity with Assigner role and the Party entity with Assignee role. A Ticket (or Voucher) may be anonymous or personalised, where the holder of that Ticket may remain unknown or has to be identified. The holder, or if known, the Assignee, is being granted the terms of the Ticket from the Assigner (in known). [Semantics]

Output: Policy expressions that stipulate the terms of usage and is redeemable by any Party who currently holds the Ticket in their possession

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] acceptTracking [Comment] The collected information may be tracked by the Assigner, or may link to a Party with the role function “trackingParty”. [Semantics]

Output: The Assigner requires that the Assignee(s) accepts that the use of the Asset may be tracked

ODRL Version 2.1 Common Vocabulary | ODRL Community Group

Table 2.2.2: Terms for entity Action used with Duty


Input: [Identifier] attribute [Comment] May link to an Asset with the attribution information. May link to a Party with the role function “attributedParty”. [Semantics]

Output: The Assigner requires that the Assignee(s) attributes the Asset to the Assigner or an attributed Party.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] compensate [Comment] The compensation may use different types of things with a value: – the thing is expressed by the value (term) of the Constraint name – the value is expressed by operator, rightOperand, dataType and unit [Semantics]

Output: The Assigner requires that the Assignee(s) compensates the Assigner (or other specified compensation Party) by some amount of value, if defined, for use of the Asset.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] delete [Comment] Use a constraint to define under which conditions the Asset should be deleted. [Semantics]

Output: The Assigner requires that the Assignee(s) permanently removes all copies of the Asset.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] ensureExclusivity [Semantics]

Output: The Assignee requires that the Assigner(s) ensure(s) that the permission on the Asset is exclusive to the Assignee.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] include [Comment] For example; Bio picture must be included in the attribution. Use of the Asset relation attribute is required [Semantics]

Output: The Assigner requires that the Assignee(s) include(s) other related assets in the Asset.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] inform [Comment] May link to a Party with the role function “informedParty”. [Semantics]

Output: The Assigner requires that the Assignee(s) inform(s) the Assigner or an informed Party that an action has been performed on or in relation to the Asset.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] nextPolicy [Semantics]

Output: The Assigner requires that the Assignee(s) grants the specified Policy to a third party for their use of the Asset.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] obtainConsent [Comment] Used as a Duty to ensure that the Assigner or a Party is authorized to approve such actions on a case-by-case basis. May link to a Party with the role function “consentingParty”. [Semantics]

Output: The Assigner requires that the Assignee(s) obtains explicit consent from the Assigner or a consenting Party to perform the requested action in relation to the Asset.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] reviewPolicy [Comment] Used when human intervention is required to review the Policy. May link to an Asset which represents the full Policy information. [Semantics]

Output: The Assigner requires that the Assignee(s) has(ve) a person review the Policy applicable to the Asset.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] uninstall [Comment] The Asset is no longer accessible to the Assignee(s). [Semantics]

Output: The Assigner requires that the Assignee(s) unload(s) and delete(s) the computer program Asset from a storage device and disable(s) its readiness for operation.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] watermark [Comment] It is recommended to embed a link to the watermark. [Semantics]

Output: The Assigner requires that the Assignee(s) apply(ies) a watermark as provided by the Assigner to the Asset.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assigner requires that the Assignee(s) accepts that the use of the Asset may be tracked [Comment] The collected information may be tracked by the Assigner, or may link to a Party with the role function “trackingParty”. [Identifier]

Output: acceptTracking

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assigner requires that the Assignee(s) attributes the Asset to the Assigner or an attributed Party. [Comment] May link to an Asset with the attribution information. May link to a Party with the role function “attributedParty”. [Identifier]

Output: attribute

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assigner requires that the Assignee(s) compensates the Assigner (or other specified compensation Party) by some amount of value, if defined, for use of the Asset. [Comment] The compensation may use different types of things with a value: – the thing is expressed by the value (term) of the Constraint name – the value is expressed by operator, rightOperand, dataType and unit [Identifier]

Output: compensate

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assigner requires that the Assignee(s) permanently removes all copies of the Asset. [Comment] Use a constraint to define under which conditions the Asset should be deleted. [Identifier]

Output: delete

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assignee requires that the Assigner(s) ensure(s) that the permission on the Asset is exclusive to the Assignee. [Identifier]

Output: ensureExclusivity

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assigner requires that the Assignee(s) include(s) other related assets in the Asset. [Comment] For example; Bio picture must be included in the attribution. Use of the Asset relation attribute is required [Identifier]

Output: include

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assigner requires that the Assignee(s) inform(s) the Assigner or an informed Party that an action has been performed on or in relation to the Asset. [Comment] May link to a Party with the role function “informedParty”. [Identifier]

Output: inform

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assigner requires that the Assignee(s) grants the specified Policy to a third party for their use of the Asset. [Identifier]

Output: nextPolicy

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assigner requires that the Assignee(s) obtains explicit consent from the Assigner or a consenting Party to perform the requested action in relation to the Asset. [Comment] Used as a Duty to ensure that the Assigner or a Party is authorized to approve such actions on a case-by-case basis. May link to a Party with the role function “consentingParty”. [Identifier]

Output: obtainConsent

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assigner requires that the Assignee(s) has(ve) a person review the Policy applicable to the Asset. [Comment] Used when human intervention is required to review the Policy. May link to an Asset which represents the full Policy information. [Identifier]

Output: reviewPolicy

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assigner requires that the Assignee(s) unload(s) and delete(s) the computer program Asset from a storage device and disable(s) its readiness for operation. [Comment] The Asset is no longer accessible to the Assignee(s). [Identifier]

Output: uninstall

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Assigner requires that the Assignee(s) apply(ies) a watermark as provided by the Assigner to the Asset. [Comment] It is recommended to embed a link to the watermark. [Identifier]

Output: watermark

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Party is a single individual [Comment] Must be supported. [Identifier]

Output: Individual

ODRL Version 2.1 Common Vocabulary | ODRL Community Group

Table 2.4.2: Terms for the attribute “scope” of the entity Role


Input: [Semantics] The Party represents a defined group with multiple individual members [Comment] Must be supported. [Identifier]

Output: Group

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] All the collective individuals within a context [Comment] For example, may be used to indicate all the users of a specific social network the party is a member of. Note that “group” scope is also assumed. [Identifier]

Output: All

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] All the first-level connections of the Party [Comment] For example, may be used to indicate all “friends” of the Party. Note that “group” scope is also assumed. [Identifier]

Output: AllConnections

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] All the second-level connections of the Party [Comment] For example, may be used to indicate all “friends of friends” of the Party. Note that “group” scope is also assumed. [Identifier]

Output: All2ndConnections

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] All the group connections of the Party [Comment] For example, may be used to indicate all groups that the Party is a member of. Note that “group” scope is also assumed. [Identifier]

Output: AllGroups

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Name] event [Required] false [Attribute Constraints] This attribute is mandatory if "type" is 'scxml'. [Default Value] none [Description] A value expression which returns a character string that indicates the type of message being generated. See 8.3 Legal Data Values and Value Expressions for details. The message type may include alphanumeric characters and the "." (dot) character. The first character may not be a dot or a digit. Message type names are case-insensitive. If neither the event attribute or in-line content is specified, an error.fetch event will be thrown. If used in conjunction with the inline content, an error.fetch will be thrown. [Type]

Output: Value expression

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] target [Required] false [Default Value] the current session [Valid Values] A valid target URL [Description] A value expression returning a unique identifier of the message target that the platform should send the event to. See 8.3 Legal Data Values and Value Expressions for details. If the special value '_internal' is specified, the event is added to the internal event queue of the current session. If no value is specified, the event is added to the external event queue of the current session. [Type]

Output: Value expression

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] type [Required] false [Default Value] 'scxml' [Valid Values] Any value expression that evaluates to a string. [Description] A value expression which returns a character string that specifies the type of the message target. See 8.3 Legal Data Values and Value Expressions for details. Values defined by the specification are: scxml. See G SCXML Event I/O Processor for details. basichttp. See H Basic HTTP Event I/O Processor for details. [Type]

Output: Value expression

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] id [Required] false [Attribute Constraints] This attribute may not occur with 'idlocation'. [Default Value] none [Valid Values] Any valid token [Description] A string literal to be used as the identifier for this instance of . It is the author's responsibility to insure that it is unique. [Type]

Output: NMTOKEN

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] idlocation [Required] false [Attribute Constraints] This attribute may not occur with 'id'. [Default Value] none [Valid Values] Any valid location expression [Description] Any location expression evaluating to a data model location. See 8.2 Location Expressions for details. The location's value will be set to an internally generated unique identifier of type NMTOKEN to be associated with the message being sent. [Type]

Output: Location expression

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] delay [Required] false [Attribute Constraints] This attribute may not be used with "target" '_internal'. [Default Value] '0s' [Valid Values] A value expression which returns a time designation as defined in CSS2 [CSS2] format [Description] The character string returned is interpreted as a time interval. The send tag will return immediately, but the message is not dispatched until the delay interval elapses. In this case, all arguments to send are evaluated when the send element is first processed, and not when the message is actually dispatched. Timers are useful for a wide variety of programming tasks, and can be implemented using this attribute. Note: The queue for messages events is maintained locally. Any messages waiting to be sent will be purged when the session that issued this request terminates. [Type]

Output: Value expression

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] namelist [Required] false [Attribute Constraints] This attribute may not be specified in conjunction with the or elements. This attribute is supported only in profiles that contain the Data Module or the Script Module. [Default Value] none [Valid Values] List of data model locations [Description] A space-separated list of zero or more data model locations to be included with the message. See 8.2 Location Expressions for details. [Type]

Output: List of location expressions

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] hints [Required] false [Default Value] none [Valid Values] A value expression. [Description] The data returned contains information which may be used by the implementing platform to optimize message transmission. The meaning of these hints is platform-specific. [Type]

Output: Value expression

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] NO_MODIFICATION_ALLOWED_ERR [Value] 7 [Description]

Output: User agents must use this code when attempting to write to a file which cannot be modified due to the state of the underlying filesystem.


Input: [Name] NOT_FOUND_ERR [Value] 8 [Description]

Output: User agents must use this code if: the directory containing the file to be written could not be found at the time the write was processed. the file to be written does not exist at the time the write was processed, and an offset other than zero is specified.


Input: [Name] INVALID_STATE_ERR [Value] 11 [Description]

Output: User agents must use this code if an application attempts to initiate a write, truncate, or seek using a FileWriter which is already in the WRITING state.


Input: [Name] SYNTAX_ERR [Value] 12 [Description]

Output: User agents must use this code when an application attempts to supply an invalid line ending specifier to the API.


Input: [Name] SECURITY_ERR [Value] 18 [Description]

Output: User agents may use this code if: it is determined that certain files are unsafe for access within a Web application it is determined that too many write calls are being made on file resources it is determined that the file has changed on disk since the user selected it This is a security error code to be used in situations not covered by any other error codes.


Input: [Name] ABORT_ERR [Value] 20 [Description]

Output: User agents must use this code if the read operation was aborted, typically with a call to abort().


Input: [Level] 2. [testability of specification] In addition to the regular specifications reviews mentioned in the previous level, Working Group commits to develop a set of test assertions, not necessarily complete, before beginning development of a test suite. [extent of test materials]

Output: Working Group commits that test suite for the specification, not necessarily complete and thorough, will exist before specification becomes Recommendation.


Input: [Level] 3. [testability of specification] In addition to regular specification reviews, a Working Group aims to have numerous normative use cases in the body of the Recommendation. [extent of test materials]

Output: In addition to the commitment of the previous level, a Working Group ensures that the test suite produced is reviewed by the Working Group or externally and the review process meets the criteria established in this document.


Input: [Level] 4. [testability of specification] Same as above. [extent of test materials]

Output: Working Group commits to establish and maintain the test cases contribution and review process and will produce and review the test suite, not necessarily complete and thorough, before the specification becomes Recommendation.


Input: [Level] 5. [testability of specification] In addition to the commitments from the previous level, Working Group will derive the list of testable assertions as an addendum to specification by the time it becomes Recommendation. [extent of test materials]

Output: Same as above


Input: [Level] 6. [testability of specification] Same as above [extent of test materials]

Output: In addition to the commitment for the previous level, a Working Group insists on a complete test suite before corresponding standard becomes Recommendation.


Input: [Level] 7. [testability of specification] Same as above [extent of test materials]

Output: In addition to the commitment for the previous level, Working Group plans to maintain the test suite even after Specification becomes recommendation. Working Group plans to support versioning and errata in the test suite and review appeals.


Input: [attribute] archive [function]

Output: For example, when defining an applet you could reference a space-separated list of jar files.


Input: [attribute] content-length [function]

Output: This is similar to meta data, in that this can be used by the object handler as a hint to the physical size of the object data that is to be processed.


Input: [attribute] data [function]

Output: This URI points to the object data to be processed. This can be an absolute URI (http://www.example.com/datafiles/myinstance.mpg), or a relative URI (myinstance.mpg). If you use a relative URI, then you will need to use the xml:base attribute to define the base location of the object data. This attribute should only refer to the data to be processed.


Input: [attribute] declare [function]

Output: This is used to delay the processing of the object data until such time that it is referred to by another element that requires the object data to be processed. In other words, the object data should be downloaded but should not be processed. For example, if an a element is coded to refer to the object element and the a element is activated, then the object data would be processed.


Input: [attribute] standby [function]

Output: The author can provide a text string that should be displayed while the object data is being downloaded and processed.


Input: [attribute] type [function]

Output: Defining the mime type of the object data will assist the object handler in determining whether the object data can be processed by the user agent or if an external application needs to be launched to process the object data.


Input: [attribute] xml:base [function]

Output: Use this attribute to define the base location of the object data. For example: http://www.example.com/datafiles/. This attribute should not be used for any other purpose.


Input: [Keyword] hidden [State] Hidden [Data type] An arbitrary string [Control type]


Input: [Keyword] text [State] Text [Data type] Text with no line breaks [Control type]

Output: Text field


Input: [Keyword] search [State] Search [Data type] Text with no line breaks [Control type]

Output: Search field


Input: [Keyword] tel [State] Telephone [Data type] Text with no line breaks [Control type]

Output: A text field


Input: [Keyword] url [State] URL [Data type] An absolute IRI [Control type]

Output: A text field


Input: [Keyword] email [State] E-mail [Data type] An e-mail address or list of e-mail addresses [Control type]

Output: A text field


Input: [Keyword] password [State] Password [Data type] Text with no line breaks (sensitive information) [Control type]

Output: Text field that obscures data entry


Input: [Keyword] datetime [State] Date and Time [Data type] A date and time (year, month, day, hour, minute, second, fraction of a second) with the time zone set to UTC [Control type]

Output: A date and time control


Input: [Keyword] date [State] Date [Data type] A date (year, month, day) with no time zone [Control type]

Output: A date control


Input: [Keyword] month [State] Month [Data type] A date consisting of a year and a month with no time zone [Control type]

Output: A month control


Input: [Keyword] week [State] Week [Data type] A date consisting of a week-year number and a week number with no time zone [Control type]

Output: A week control


Input: [Keyword] time [State] Time [Data type] A time (hour, minute, seconds, fractional seconds) with no time zone [Control type]

Output: A time control


Input: [Keyword] datetime-local [State] Local Date and Time [Data type] A date and time (year, month, day, hour, minute, second, fraction of a second) with no time zone [Control type]

Output: A date and time control


Input: [Keyword] number [State] Number [Data type] A numerical value [Control type]

Output: A text field or spinner control


Input: [Keyword] range [State] Range [Data type] A numerical value, with the extra semantic that the exact value is not important [Control type]

Output: A slider control or similar


Input: [Keyword] color [State] Color [Data type] An sRGB color with 8-bit red, green, and blue components [Control type]

Output: A color well


Input: [Keyword] checkbox [State] Checkbox [Data type] A set of zero or more values from a predefined list [Control type]

Output: A checkbox


Input: [Keyword] radio [State] Radio Button [Data type] An enumerated value [Control type]

Output: A radio button


Input: [Keyword] file [State] File Upload [Data type] Zero or more files each with a MIME type and optionally a file name [Control type]

Output: A label and a button


Input: [Keyword] submit [State] Submit Button [Data type] An enumerated value, with the extra semantic that it must be the last value selected and initiates form submission [Control type]

Output: A button


Input: [Keyword] image [State] Image Button [Data type] A coordinate, relative to a particular image's size, with the extra semantic that it must be the last value selected and initiates form submission [Control type]

Output: Either a clickable image, or a button


Input: [Keyword] reset [State] Reset Button [Data type] n/a [Control type]

Output: A button


Input: [Keyword] button [State] Button [Data type] n/a [Control type]

Output: A button


Input: [Name] target [Required] false [Type] Value expression [Default Value] the current session [Description] A value expression returning a unique identifier of the message target that the platform should send the event to. See 8.3 Legal Data Values and Value Expressions for details. If the special value '_internal' is specified, the event is added to the internal event queue of the current session. If no value is specified, the event is added to the external event queue of the current session. [Valid Values]

Output: A valid target URL

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] type [Required] false [Type] Value expression [Default Value] 'scxml' [Description] A value expression which returns a character string that specifies the type of the message target. See 8.3 Legal Data Values and Value Expressions for details. Values defined by the specification are: scxml. See G SCXML Event I/O Processor for details. basichttp. See H Basic HTTP Event I/O Processor for details. [Valid Values]

Output: Any value expression that evaluates to a string.

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] id [Required] false [Attribute Constraints] This attribute may not occur with 'idlocation'. [Type] NMTOKEN [Default Value] none [Description] A string literal to be used as the identifier for this instance of . It is the author's responsibility to insure that it is unique. [Valid Values]

Output: Any valid token

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] idlocation [Required] false [Attribute Constraints] This attribute may not occur with 'id'. [Type] Location expression [Default Value] none [Description] Any location expression evaluating to a data model location. See 8.2 Location Expressions for details. The location's value will be set to an internally generated unique identifier of type NMTOKEN to be associated with the message being sent. [Valid Values]

Output: Any valid location expression

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] delay [Required] false [Attribute Constraints] This attribute may not be used with "target" '_internal'. [Type] Value expression [Default Value] '0s' [Description] The character string returned is interpreted as a time interval. The send tag will return immediately, but the message is not dispatched until the delay interval elapses. In this case, all arguments to send are evaluated when the send element is first processed, and not when the message is actually dispatched. Timers are useful for a wide variety of programming tasks, and can be implemented using this attribute. Note: The queue for messages events is maintained locally. Any messages waiting to be sent will be purged when the session that issued this request terminates. [Valid Values]

Output: A value expression which returns a time designation as defined in CSS2 [CSS2] format

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] namelist [Required] false [Attribute Constraints] This attribute may not be specified in conjunction with the or elements. This attribute is supported only in profiles that contain the Data Module or the Script Module. [Type] List of location expressions [Default Value] none [Description] A space-separated list of zero or more data model locations to be included with the message. See 8.2 Location Expressions for details. [Valid Values]

Output: List of data model locations

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Name] hints [Required] false [Type] Value expression [Default Value] none [Description] The data returned contains information which may be used by the implementing platform to optimize message transmission. The meaning of these hints is platform-specific. [Valid Values]

Output: A value expression.

State Chart XML (SCXML): State Machine Notation for Control Abstraction


Input: [Value] 7 [Description] User agents must use this code when attempting to write to a file which cannot be modified due to the state of the underlying filesystem. [Name]

Output: NO_MODIFICATION_ALLOWED_ERR


Input: [Value] 8 [Description] User agents must use this code if: the directory containing the file to be written could not be found at the time the write was processed. the file to be written does not exist at the time the write was processed, and an offset other than zero is specified. [Name]

Output: NOT_FOUND_ERR


Input: [Value] 11 [Description] User agents must use this code if an application attempts to initiate a write, truncate, or seek using a FileWriter which is already in the WRITING state. [Name]

Output: INVALID_STATE_ERR


Input: [Value] 12 [Description] User agents must use this code when an application attempts to supply an invalid line ending specifier to the API. [Name]

Output: SYNTAX_ERR


Input: [Value] 18 [Description] User agents may use this code if: it is determined that certain files are unsafe for access within a Web application it is determined that too many write calls are being made on file resources it is determined that the file has changed on disk since the user selected it This is a security error code to be used in situations not covered by any other error codes. [Name]

Output: SECURITY_ERR


Input: [Value] 20 [Description] User agents must use this code if the read operation was aborted, typically with a call to abort(). [Name]

Output: ABORT_ERR


Input: [Identifier] acceptTracking [Semantics] The Assigner requires that the Assignee(s) accepts that the use of the Asset may be tracked [Comment]

Output: The collected information may be tracked by the Assigner, or may link to a Party with the role function “trackingParty”.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] attribute [Semantics] The Assigner requires that the Assignee(s) attributes the Asset to the Assigner or an attributed Party. [Comment]

Output: May link to an Asset with the attribution information. May link to a Party with the role function “attributedParty”.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] compensate [Semantics] The Assigner requires that the Assignee(s) compensates the Assigner (or other specified compensation Party) by some amount of value, if defined, for use of the Asset. [Comment]

Output: The compensation may use different types of things with a value: – the thing is expressed by the value (term) of the Constraint name – the value is expressed by operator, rightOperand, dataType and unit

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] delete [Semantics] The Assigner requires that the Assignee(s) permanently removes all copies of the Asset. [Comment]

Output: Use a constraint to define under which conditions the Asset should be deleted.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] include [Semantics] The Assigner requires that the Assignee(s) include(s) other related assets in the Asset. [Comment]

Output: For example; Bio picture must be included in the attribution. Use of the Asset relation attribute is required

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] inform [Semantics] The Assigner requires that the Assignee(s) inform(s) the Assigner or an informed Party that an action has been performed on or in relation to the Asset. [Comment]

Output: May link to a Party with the role function “informedParty”.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] obtainConsent [Semantics] The Assigner requires that the Assignee(s) obtains explicit consent from the Assigner or a consenting Party to perform the requested action in relation to the Asset. [Comment]

Output: Used as a Duty to ensure that the Assigner or a Party is authorized to approve such actions on a case-by-case basis. May link to a Party with the role function “consentingParty”.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] reviewPolicy [Semantics] The Assigner requires that the Assignee(s) has(ve) a person review the Policy applicable to the Asset. [Comment]

Output: Used when human intervention is required to review the Policy. May link to an Asset which represents the full Policy information.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] uninstall [Semantics] The Assigner requires that the Assignee(s) unload(s) and delete(s) the computer program Asset from a storage device and disable(s) its readiness for operation. [Comment]

Output: The Asset is no longer accessible to the Assignee(s).

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] watermark [Semantics] The Assigner requires that the Assignee(s) apply(ies) a watermark as provided by the Assigner to the Asset. [Comment]

Output: It is recommended to embed a link to the watermark.

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Property] Directly Readable and Writable [Notes] The XML format itself satisfies this property, but naturally any generic compression applied to a file format requires creating the intermediate form first. [XML+gzip]

Output: Yes


Input: [Property] Transport Independence [XML+gzip]

Output: Yes


Input: [Property] Compactness [Notes] XML and gzip cannot take advantage of schema information, so this format fails in the Schema and Both classes. By definition, it succeeds in the Document class and fails in the Neither class (due to the different requirements, in the Neither class, it would have to be smaller than itself). [XML+gzip]

Output: No


Input: [Property] Human Language Neutral [XML+gzip]

Output: Yes


Input: [Property] Platform Neutrality [XML+gzip]

Output: Yes


Input: [Property] Integratable into XML Stack [XML+gzip]

Output: Yes


Input: [Property] Royalty Free [XML+gzip]

Output: Yes


Input: [Property] Fragmentable [XML+gzip]

Output: Yes


Input: [Property] Streamable [XML+gzip]

Output: Yes


Input: [Property] Roundtrip Support [Notes] The equivalence is exact in both cases. [XML+gzip]

Output: Yes


Input: [Property] Generality [Notes] The measurement value is 10/20. [XML+gzip]

Output: No


Input: [Property] Schema Extensions and Deviations [XML+gzip]

Output: Yes


Input: [Property] Format Version Identifier [Notes] Both XML and gzip include an identifier in the header. [XML+gzip]

Output: Yes


Input: [Property] Content Type Management [XML+gzip]

Output: Yes


Input: [Property] Self Contained [XML+gzip]

Output: Yes


Input: [Property] Processing Efficiency [XML+gzip]

Output: Prevents


Input: [Property] Small Footprint [XML+gzip]

Output: Does Not Prevent


Input: [Property] Widespread Adoption [Notes] Both XML and gzip have been widely adopted and included in many protocol standards. [XML+gzip]

Output: Does Not Prevent


Input: [Property] Space Efficiency [XML+gzip]

Output: Prevents


Input: [Property] Implementation Cost [XML+gzip]

Output: Does Not Prevent


Input: [Property] Forward Compatibility [XML+gzip]

Output: Does Not Prevent


Input: [Semantics] The Party is a single individual [Comment] Must be supported. [Identifier]

Output: Individual

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] The Party represents a defined group with multiple individual members [Comment] Must be supported. [Identifier]

Output: Group

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] All the collective individuals within a context [Comment] For example, may be used to indicate all the users of a specific social network the party is a member of. Note that “group” scope is also assumed. [Identifier]

Output: All

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] All the first-level connections of the Party [Comment] For example, may be used to indicate all “friends” of the Party. Note that “group” scope is also assumed. [Identifier]

Output: AllConnections

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] All the second-level connections of the Party [Comment] For example, may be used to indicate all “friends of friends” of the Party. Note that “group” scope is also assumed. [Identifier]

Output: All2ndConnections

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Semantics] All the group connections of the Party [Comment] For example, may be used to indicate all groups that the Party is a member of. Note that “group” scope is also assumed. [Identifier]

Output: AllGroups

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] eq [Semantics]

Output: The “Equals” operator indicating that a given value equals the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group

Table 2.3.2: Terms for the attribute “operator” of the entity Constraint


Input: [Identifier] gt [Semantics]

Output: The “Greater Than” operator indicating that a given value is greater than the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] gteq [Semantics]

Output: The “Greater Than or Equal To” operator indicating that a given value is greater than or equal to the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] hasPart [Semantics]

Output: The “Has Part” operator indicating that a given value contains the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] isA [Semantics]

Output: The “Is A” operator indicating that a given value is an instance of the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] isAllOf [Semantics]

Output: The “Is All Of” operator indicating that a given value is all of the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] isAnyOf [Semantics]

Output: The “Is Any Of” operator indicating that a given value is any of the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] isNoneOf [Semantics]

Output: The “Is None Of” operator indicating that a given value is none of the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] isPartOf [Semantics]

Output: The “Is Part Of” operator indicating that a given value is contained by the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] lt [Semantics]

Output: The “Less Than” operator indicating that a given value is less than the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] lteq [Semantics]

Output: The “Less Than or Equal To” operator indicating that a given value is less than or equal to the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] neq [Semantics]

Output: The “Not Equal To” operator indicating that a given value is not equal to the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [QName Local Name] Success [Description] The operation succeeded. [Final]

Output: Final

XML Key Management Specification (XKMS 2.0)


Input: [QName Local Name] VersionMismatch [Description] The service does not support the protocol version specified in the request. [Final]

Output: Final

XML Key Management Specification (XKMS 2.0)


Input: [QName Local Name] Sender [Description] An error occurred that was due to the message sent by the sender. [Final]

Output: Final

XML Key Management Specification (XKMS 2.0)


Input: [QName Local Name] Receiver [Description] An error occurred at the receiver. [Final]

Output: Final

XML Key Management Specification (XKMS 2.0)


Input: [QName Local Name] Represent [Description] The service has not acted on the request. In order for the request to be acted upon the request MUST be represented with the specified nonce in accordance with the two phase protocol [Final]

Output: Not Final

XML Key Management Specification (XKMS 2.0)


Input: [QName Local Name] Pending [Description] The request has been accepted for processing and the service will return the result asynchronously [Final]

Output: Not Final

XML Key Management Specification (XKMS 2.0)


Input: [Rule] Rule 1: Each modality component must implement all of the MMI life cycle events [Component Information]

Output: See Table 2 for the details of the implementation of the life cycle events.

Table 1: Component behavior with respect to modality component rules.


Input: [Rule] Rule 2: Identify other functions of the modality component that are relevant to the interaction manager. [Component Information]

Output: All the functions of the component are covered in the life cycle events, no other functions are needed.


Input: [Rule] Rule 3: If the component uses media, specify the media format. [Component Information]

Output: The component uses the jpeg format for images to be identified and for its image database.


Input: [Rule] Rule 4: Specify protocols supported by the component for transmitting media (e.g. SIP). [Component Information]

Output: The component uses HTTP for transmitting media.


Input: [Rule] Rule 5: Specify supported human languages [Component Information]

Output: This component does not support any human languages.


Input: [Rule] Rule 6: Specify supporting languages required by the component [Component Information]

Output: This component does not require any markup languages.


Input: [Rule] Rule 7: Modality components sending data to the interaction manager must use the EMMA format. [Component Information]

Output: This component uses EMMA.


Input: [Keyword] hidden [Data type] An arbitrary string [Control type] n/a [State]

Output: Hidden


Input: [Keyword] text [Data type] Text with no line breaks [Control type] Text field [State]

Output: Text


Input: [Keyword] search [Data type] Text with no line breaks [Control type] Search field [State]

Output: Search


Input: [Keyword] tel [Data type] Text with no line breaks [Control type] A text field [State]

Output: Telephone


Input: [Keyword] url [Data type] An absolute IRI [Control type] A text field [State]

Output: URL


Input: [Keyword] email [Data type] An e-mail address or list of e-mail addresses [Control type] A text field [State]

Output: E-mail


Input: [Keyword] password [Data type] Text with no line breaks (sensitive information) [Control type] Text field that obscures data entry [State]

Output: Password


Input: [Keyword] datetime [Data type] A date and time (year, month, day, hour, minute, second, fraction of a second) with the time zone set to UTC [Control type] A date and time control [State]

Output: Date and Time


Input: [Keyword] date [Data type] A date (year, month, day) with no time zone [Control type] A date control [State]

Output: Date


Input: [Keyword] month [Data type] A date consisting of a year and a month with no time zone [Control type] A month control [State]

Output: Month


Input: [Keyword] week [Data type] A date consisting of a week-year number and a week number with no time zone [Control type] A week control [State]

Output: Week


Input: [Keyword] time [Data type] A time (hour, minute, seconds, fractional seconds) with no time zone [Control type] A time control [State]

Output: Time


Input: [Keyword] datetime-local [Data type] A date and time (year, month, day, hour, minute, second, fraction of a second) with no time zone [Control type] A date and time control [State]

Output: Local Date and Time


Input: [Keyword] number [Data type] A numerical value [Control type] A text field or spinner control [State]

Output: Number


Input: [Keyword] range [Data type] A numerical value, with the extra semantic that the exact value is not important [Control type] A slider control or similar [State]

Output: Range


Input: [Keyword] color [Data type] An sRGB color with 8-bit red, green, and blue components [Control type] A color well [State]

Output: Color


Input: [Keyword] checkbox [Data type] A set of zero or more values from a predefined list [Control type] A checkbox [State]

Output: Checkbox


Input: [Keyword] radio [Data type] An enumerated value [Control type] A radio button [State]

Output: Radio Button


Input: [Keyword] file [Data type] Zero or more files each with a MIME type and optionally a file name [Control type] A label and a button [State]

Output: File Upload


Input: [Keyword] submit [Data type] An enumerated value, with the extra semantic that it must be the last value selected and initiates form submission [Control type] A button [State]

Output: Submit Button


Input: [Keyword] image [Data type] A coordinate, relative to a particular image's size, with the extra semantic that it must be the last value selected and initiates form submission [Control type] Either a clickable image, or a button [State]

Output: Image Button


Input: [Keyword] reset [Data type] n/a [Control type] A button [State]

Output: Reset Button


Input: [Keyword] button [Data type] n/a [Control type] A button [State]

Output: Button


Input: [Identifier] eq [Semantics]

Output: The “Equals” operator indicating that a given value equals the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] gt [Semantics]

Output: The “Greater Than” operator indicating that a given value is greater than the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] gteq [Semantics]

Output: The “Greater Than or Equal To” operator indicating that a given value is greater than or equal to the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] hasPart [Semantics]

Output: The “Has Part” operator indicating that a given value contains the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] isA [Semantics]

Output: The “Is A” operator indicating that a given value is an instance of the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] isAllOf [Semantics]

Output: The “Is All Of” operator indicating that a given value is all of the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] isAnyOf [Semantics]

Output: The “Is Any Of” operator indicating that a given value is any of the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] isNoneOf [Semantics]

Output: The “Is None Of” operator indicating that a given value is none of the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] isPartOf [Semantics]

Output: The “Is Part Of” operator indicating that a given value is contained by the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] lt [Semantics]

Output: The “Less Than” operator indicating that a given value is less than the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] lteq [Semantics]

Output: The “Less Than or Equal To” operator indicating that a given value is less than or equal to the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] neq [Semantics]

Output: The “Not Equal To” operator indicating that a given value is not equal to the rightOperand of the Constraint

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Keyword] hidden [State] Hidden [Control type] n/a [Data type]

Output: An arbitrary string


Input: [Keyword] text [State] Text [Control type] Text field [Data type]

Output: Text with no line breaks


Input: [Keyword] search [State] Search [Control type] Search field [Data type]

Output: Text with no line breaks


Input: [Keyword] tel [State] Telephone [Control type] A text field [Data type]

Output: Text with no line breaks


Input: [Keyword] url [State] URL [Control type] A text field [Data type]

Output: An absolute IRI


Input: [Keyword] email [State] E-mail [Control type] A text field [Data type]

Output: An e-mail address or list of e-mail addresses


Input: [Keyword] password [State] Password [Control type] Text field that obscures data entry [Data type]

Output: Text with no line breaks (sensitive information)


Input: [Keyword] datetime [State] Date and Time [Control type] A date and time control [Data type]

Output: A date and time (year, month, day, hour, minute, second, fraction of a second) with the time zone set to UTC


Input: [Keyword] date [State] Date [Control type] A date control [Data type]

Output: A date (year, month, day) with no time zone


Input: [Keyword] month [State] Month [Control type] A month control [Data type]

Output: A date consisting of a year and a month with no time zone


Input: [Keyword] week [State] Week [Control type] A week control [Data type]

Output: A date consisting of a week-year number and a week number with no time zone


Input: [Keyword] time [State] Time [Control type] A time control [Data type]

Output: A time (hour, minute, seconds, fractional seconds) with no time zone


Input: [Keyword] datetime-local [State] Local Date and Time [Control type] A date and time control [Data type]

Output: A date and time (year, month, day, hour, minute, second, fraction of a second) with no time zone


Input: [Keyword] number [State] Number [Control type] A text field or spinner control [Data type]

Output: A numerical value


Input: [Keyword] range [State] Range [Control type] A slider control or similar [Data type]

Output: A numerical value, with the extra semantic that the exact value is not important


Input: [Keyword] color [State] Color [Control type] A color well [Data type]

Output: An sRGB color with 8-bit red, green, and blue components


Input: [Keyword] checkbox [State] Checkbox [Control type] A checkbox [Data type]

Output: A set of zero or more values from a predefined list


Input: [Keyword] radio [State] Radio Button [Control type] A radio button [Data type]

Output: An enumerated value


Input: [Keyword] file [State] File Upload [Control type] A label and a button [Data type]

Output: Zero or more files each with a MIME type and optionally a file name


Input: [Keyword] submit [State] Submit Button [Control type] A button [Data type]

Output: An enumerated value, with the extra semantic that it must be the last value selected and initiates form submission


Input: [Keyword] image [State] Image Button [Control type] Either a clickable image, or a button [Data type]

Output: A coordinate, relative to a particular image's size, with the extra semantic that it must be the last value selected and initiates form submission


Input: [Keyword] reset [State] Reset Button [Control type] A button [Data type]


Input: [Keyword] button [State] Button [Control type] A button [Data type]


Input: [Function] op:to [Meaning]

Output: Returns the sequence containing every xs:integer between the values of the operands.

XQuery 1.0 and XPath 2.0 Functions and Operators


Input: [Function] fn:id [Meaning]

Output: Returns the sequence of element nodes having an ID value matching the one or more of the supplied IDREF values.

XQuery 1.0 and XPath 2.0 Functions and Operators


Input: [Function] fn:idref [Meaning]

Output: Returns the sequence of element or attribute nodes with an IDREF value matching one or more of the supplied ID values.

XQuery 1.0 and XPath 2.0 Functions and Operators


Input: [Function] fn:doc [Meaning]

Output: Returns a document node retrieved using the specified URI.

XQuery 1.0 and XPath 2.0 Functions and Operators


Input: [Function] fn:doc-available [Meaning]

Output: Returns true if a document node can be retrieved using the specified URI.

XQuery 1.0 and XPath 2.0 Functions and Operators


Input: [Function] fn:collection [Meaning]

Output: Returns a sequence of nodes retrieved using the specified URI or the nodes in the default collection.

XQuery 1.0 and XPath 2.0 Functions and Operators


Input: [Topic] PHP history and uses [Evaluation Methods] Final exam [Competency]

Output: Explain the difference between server side and client side scripts. Summarize the origin and development of PHP. List and briefly describe the most common alternatives to PHP. List some well known web sites and applications that has been built in PHP. Briefly explain the concept of Open Source. List some well-known public mailing lists, IRC channels and discussion forums where you can find help with PHP.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Installation and basic configuration of PHP and an IDE [Evaluation Methods] Module 1: Installation Final exam [Competency]

Output: Demonstrate installing an HTTP-server, PHP and MySQL on a computer. Demonstrate the usage of php.ini and .htaccess Explain why display_errors should be off on a production web server. List some commonly used PHP-modules and demonstrate how to activate them on a web server. Demonstrate how to get information about a PHP-installation using phpinfo() and php -m. Demonstrate how to use PHP CLI. Demonstrate how to install an IDE or editor for PHP development. Explain the purpose and usage of development and staging servers. Explain the purpose of a version control system.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Basic PHP syntax [Evaluation Methods] Module 1: Installation Final exam Final assignment [Competency]

Output: Demonstrate how to switch between HTML-mode and PHP mode. List what types of php tags that you can use, and explain the potential pitfalls of using short open tags. (Note to teachers: Turn open tags off on the server you provide.) Demonstrate how to use single line, multi line and PhpDoc-style comments. Demonstrate how to separate instructions. Demonstrate how to use the echo and print statements. Recognize the differences between the two.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Using PHP as a simple template engine [Evaluation Methods] Assignment 1: Use PHP as a Template System [Competency]

Output: Explain the concept of server side includes and why it is better than client side frames. Describe the differences between PHP’s include, include_once, require and require_once commands. Explain performance benefits of using absolute paths when including files. Explain why included files should always reside outside of the server root directory. Demonstrate how PHP can make client side frames redundant.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] PHP best practices overview [Evaluation Methods] (Most assignments will touch upon these concepts in some way.) Final assignment. Final exam. [Competency]

Output: Note: This is meant as an overview. No in-depth knowledge yet. Briefly discuss key characteristics of a well written PHP_application. Demonstrate how to write readable and properly indented code. Demonstrate basic knowledge about coding conventions, especially the PEAR coding standard. Explain what revision control is. Show basic knowledge about phpDocumentor. Use the most basic tags in phpDocumentor and produce generated documentation for your code. Explain what bug tracking is. List a few well known bug trackers.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Programming concepts [Evaluation Methods] (Modules with exercises are appreciated.) Final assignment. Final exam. [Competency]

Output: Explain the concept of identifiers and list some identifier names one is not allowed to use in PHP. Explain the concept of sigils. Explain the consept of data types and compare strong and weak typing. Demonstrate type checking and type juggling. Recognize that all user-submitted data, and all data-base results, are strings to PHP. Demonstrate how to check for numeric values in strings. Explain the null value, and describe the difference between variables that are null and variables that have not been set. Demonstrate how to use the isset() and empty() functions. Explain what values in PHP that convert to false, when used in a boolean check. Demonstrate usage of variables and constants, using best practice naming conventions. Recognize the different kinds of constants in PHP (built in, magic, user defined; global, class). Demonstrate different syntaxes for setting constants (define and const - also for global constants since PHP 5.3) Explain the concept of statements. Demonstrate correct usage of statements and block statements. Explain the concept of expressions. Demonstrate correct usage of expressions. Explain what operators are and demonstrate correct usage of all common operators. Explain the concept of functions and all associated terminology and demonstrate how to write and use functions. Explain and use assignment by value and assignment by reference. Explain what arrays are in PHP and contrast the implementation to a few other programming languages. Demonstrate how to create and manipulate arrays and how to access individual items in arrays. Recognize all error levels in PHP and explain the difference between an error and an exception. Demonstrate how to handle errors appropriately.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] HTTP [Evaluation Methods] Module 2 (a): Emulate HTTP-connections with netcat or telnet Module 2 (b): Analyze HTTP-traffic using Firebug or a similar tool. Final assignment. Final exam. [Competency]

Output: Explain the most commonly used HTTP methods (get, post, head) Demonstrate how to fetch information from the client using $_SERVER. Explain MIME-types, and demonstrate how to set MIME-types using PHP’s header-function.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Character encoding [Evaluation Methods] Assignment 3. Final assignment Final exam Extra questions for SS 2: Explain what a BOM is and how it can cause problems for PHP scripts. What is the difference between little endian and big endian UTF-16? What is Unicode normalization? [Competency]

Output: Note: For any audience using non ascii-characters (almost everybody outside the USA and UK) this is essential! Describe the basics of character encodings and compare the terminology used by Unicode to the terminology used in HTTP-headers encoding vs. charset. Demonstrate how to specify the encoding used in a script (the setting on your editor or IDE). Explain the difference between multi-byte encodings and single-byte encodings. Demonstrate how to use multi-byte string functions in PHP 5.x. Recognize problems that might occur in PHP because of misinterpreted character encodings. Demonstrate how to set character encoding in HTTP-headers, using the http-server tools and PHP. List the characters that have a highest potential for abuse (e.g. “null” and “eof”) and demonstrate how to filter input to avoid them using ctype functions. Demonstrate how to set the encoding (and collation) in a MySQL table or field, using PhpMyAdmin or a similar tool. Demonstrate how to convert text between different encodings.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Locales, timezones and time functions. [Evaluation Methods] (Modules with exercises are appreciated.) Final exam Final assignment [Competency]

Output: Explain the concept of locales. Demonstrate how to set timezones for PHP scripts. Demonstrate how to set locale for PHP scripts. Explain the concept of collation and demonstrate how to use locale aware string and array comparison and sorting. Demonstrate how locale and timezone information affects date and time functionality in PHP. Use the basic date and time functions.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Strings [Evaluation Methods] Assignment 3. Final exam. Final assignment. [Competency]

Output: Explain the concept of a string. Compare the two types of strings there is in PHP 6. Demonstrate how to set them and convert between them. Demonstrate how to get the length of a string and access its characters by index Demonstrate how to handle single and double quotes in strings with variables. Demonstrate how to concatenate strings. Demonstrate how to use heredoc and nowdoc. Recognize the two syntaxes that exist for heredoc as of PHP 5.3. Demonstrate how to escape characters in strings. Demonstrate correct usage of basic string functions, e.g. strlen, substr, strstr, strpos, trim, strtolower, with variants. Demonstrate how to compare strings, using operators and comparison functions like strcmp or strcoll. Demonstrate how to check the integrity of string contents using the ctype-functions. Explain the concept of regular expressions, exemplify when they can be used and demonstrate simple usage.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Array usage and array functions [Evaluation Methods] Assignment 3. Final exam. Final assignment. [Competency]

Output: Demonstrate how to iterate over an array using the foreach function. Demonstrate how to sort arrays. Demonstrate how to perform a function call on each value in an array. Specifically, demonstrate how to remove magic quotes from GPC-data. Explain what the cursor is in an array and demonstrate how to walk through arrays. Demonstrate how to use assign multiple variables from array values using the list() language construct. Demonstrate how to check for the existence of specific keys or values within an array. Demonstrate how to attach and how to delete values at both the bottom and top of an array.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Objects and classes (simple overview) [Evaluation Methods] (Modules with exercises are appreciated.) Final exam Final assignment [Competency]

Output: Explain some benefits of Object Oriented programming compared to procedural programming. Explain basic OO terminology. Demonstrate how to define and instantiate classes in PHP. Explain constructors and destructors, how to name constructors in PHP 4 and 5+ and how to use constructors. Demonstrate how to use the $this pseudovariable. Explain the concept of inheritance och demonstrate how to use the extends keyword. Explain the concept of polymorfism and demonstrate how to use interfaces and abstract classes in PHP. Briefly explain the differences in the object model between PHP 4 and PHP 5. Explain visibility of properties and methods. Explain class constants, static properties and methods and demonstrate how to use the scope resolution operator (Paamayim Nekudotayim).

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Error handling and exceptions [Evaluation Methods] (Modules with exercises are appreciated.) Final exam. Final assignment. [Competency]

Output: Recognize the types of errors in PHP. Handle interaction errors e.g. GET-data does not match DB-record might produce a 404. Use good error handling strategies. E.g: Differentiate between development servers (show on page) vs. production servers (log errors). Make usable error pages and understandable error messages. Send the correct HTTP status code for error pages. Recognize exceptions and handle them using try and catch.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Server side architecture [Evaluation Methods] Exercise 4. Final exam. Final assignment. [Competency]

Output: Recognize what separation of concerns mean for PHP development. Recognize the following concepts: Presentation logic and templates, business logic and data storage logic. Demonstrate a secure and logical directory structure for PHP applictions. Explain include paths. Demonstrate how to write an application that does not depend on being in a specific root directory. Demonstrate a good strategy for filtering all untrusted data. Demonstrate consistent and appropriate escaping of output data. Implement usable, SEO-friendly and hackable URL:s. Recognize rewrite rules. Recognize the abbreviation MVC and briefly explain the rationale behind it.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Handling posted data [Evaluation Methods] Exercise 5. Final exam. Final assignment. [Competency]

Output: Explain why client side checks only can be used to offload a server and provide better usability, never for security. Explain why GPC-data might be quoted in PHP 4.x and 5.x. Explain what problems magic quotes were intended to solve, why they did not work properly and are being removed in PHP 6 and how they can be removed in a script. Explain how the superglobal array $_POST relates to name attributes in HTML forms. Demonstrate handling posted data. Recognize the usage of register globals and explain why it is a security hazard. Recognize the bad habit of manually making EGPCS-data into regular variables ($foo = $_POST[‘foo’] or extract($_POST)). Recognize the usage of $_REQUEST and explain why it is considered bad practice to use it. Recognize how sensitive data can be transmitted securily, using encryption. Recognize the abbreviations SSL and TLS.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Sending email [Evaluation Methods] Exercise 5. Final exam. Final assignment. [Competency]

Output: Demonstrate simple usage of the mail() function in PHP. Recognize the concept SMTP injection and demonstrate how to avoid it.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Sessions and authentication [Evaluation Methods] Final exam. Final assignment. [Competency]

Output: Recognize the sessionless nature of HTTP. Recognize session fixation and session hijacking. Use session_regenerate_id and set session ID using cookies only. Recognize HTTP-authentication in PHP. Preventing multiple submits of a form. Demonstrate how to prevent cross-posting using a session variable.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Cookies [Evaluation Methods] Final exam. Final assignment. [Competency]

Output: Explain the concept of cookies and how they are passed to the server from the browser. Demonstrate how to set and read cookies. Explain the security benefits of server side only cookies, and demonstrate how to set them.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] File handling and storing data in text files [Evaluation Methods] Final exam. Final assignment. [Competency]

Output: Demonstrate how to read from and write to files. Recognize the different flags used to control the opening of file sockets. Recognize the most common security problems when usiing file functions. Demonstrate how to safely handle files uploaded by the user.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Relational Database concepts and MySQL fundamentals [Evaluation Methods] Final assignment Final exam [Competency]

Output: List some common Database Management Systems (DBMS). List some common alternatives to storing data in a relational database and briefly explain the merits and disadvantages of each option. Explain how SQLite can be used from every modern PHP installation. (Note: SQLite is primarily included to provide a way to explain data access abstraction using PDO.) Give an overview of how a relational database works. Recognize the terminology used about databases (relation/table, tuple/row, attribute/field/column, default values, NULL, keys, etc). Briefly explain the concept of normalization and recognize the related glossary (keys, functional dependency) List the available data types in MySQL and demonstrate proper usage of the most common ones. Explain the concept of indexes. Demonstrate how to use indexes in MySQL. Recognize the concept of a storage engines in MySQL and briefly explain the main differences between MyISAM and InnoDB. Demonstrate how to use PhpMyAdmin or a graphical tool to set up a database. Make a user with privileges suitable for PHP scripts. Demonstrate how to run queries in the tool. Demonstrate how to backup/dump a MySQL database. Question to reviewers: Is it possible to wait with constraints and referential integrity (foreign keys) until Server Side Scripting 2?

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] SQL [Evaluation Methods] Final assignment Final exam [Competency]

Output: Recognize the glossary of SQL (DDL, DML, CRUD) Demonstrate how to access a MySQL DBMS from a CLI tool. Demonstrate how to SELECT individual records and groups of records; SORT-ing and LIMIT-ing of the results. Demonstrate how to use JOIN. Demonstrate simple usage of SQL-functions (count!) Demonstrate how to INSERT data into a table. Demonstrate how to UPDATE a table and explain why one should always use the WHERE clause doing so. Demonstrate how to DELETE data and explain why one should always use the WHERE clause doing so.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] PDO [Evaluation Methods] Final assignment Final exam [Competency]

Output: Recognize all 3 built in API’s to access a MySQL database from PHP (mysql, mysqli, PDO). Discuss their strengths and downsides. Demonstrate how to connect to a DBMS with PDO, prepare and execute statements, fetch single results and iterate over result sets. Recognize how to access reults from a prepared statement as normal arrays, associative arrays, objects and objects belonging to a specific class. Demonstrate safe usage of user submitted data in SQL. Recognize how to manually quote user submitted data. Discuss the benefits of prepared statements. Demonstrate how to handle errors and unexpected results using PDO. Demonstrate safe handling of database credentials.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] The mysql and the mysqli functions [Evaluation Methods] Final exam [Competency]

Output: Recognize how to use the mysql and the mysqli functions. Discuss how to safely handle user submitted data using the mysql and the mysqli functions.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] SPL, PEAR and Frameworks [Evaluation Methods] Final exam [Competency]

Output: Recognize PEAR, PECL, SPL and the most well known PHP Component libraries? Recognize the most common PHP Frameworks. Recognize the most common PHP applications/Content Managament Systems. Recognize the usage of PHP for extended functionality for some big websites (e.g. Facebook)

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Web Services, API’s, RSS, JSON and Ajax [Evaluation Methods] Final exam [Competency]

Output: Recognize the most common formats for data interchange. Summarize the Ajax pattern for updating a web page. Briefly describe the concepts of API’s and Web Services.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Topic] Shared hosting [Evaluation Methods] Final assignment Final exam [Competency]

Output: Recognize the most important technical considerations one must know when chosing a web host. List the most important security considerations one must know about shared hosting. Demonstrate usage of a web host control panel.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Explain the difference between server side and client side scripts. Summarize the origin and development of PHP. List and briefly describe the most common alternatives to PHP. List some well known web sites and applications that has been built in PHP. Briefly explain the concept of Open Source. List some well-known public mailing lists, IRC channels and discussion forums where you can find help with PHP. [Evaluation Methods] Final exam [Topic]

Output: PHP history and uses

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Demonstrate installing an HTTP-server, PHP and MySQL on a computer. Demonstrate the usage of php.ini and .htaccess Explain why display_errors should be off on a production web server. List some commonly used PHP-modules and demonstrate how to activate them on a web server. Demonstrate how to get information about a PHP-installation using phpinfo() and php -m. Demonstrate how to use PHP CLI. Demonstrate how to install an IDE or editor for PHP development. Explain the purpose and usage of development and staging servers. Explain the purpose of a version control system. [Evaluation Methods] Module 1: Installation Final exam [Topic]

Output: Installation and basic configuration of PHP and an IDE

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Demonstrate how to switch between HTML-mode and PHP mode. List what types of php tags that you can use, and explain the potential pitfalls of using short open tags. (Note to teachers: Turn open tags off on the server you provide.) Demonstrate how to use single line, multi line and PhpDoc-style comments. Demonstrate how to separate instructions. Demonstrate how to use the echo and print statements. Recognize the differences between the two. [Evaluation Methods] Module 1: Installation Final exam Final assignment [Topic]

Output: Basic PHP syntax

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Explain the concept of server side includes and why it is better than client side frames. Describe the differences between PHP’s include, include_once, require and require_once commands. Explain performance benefits of using absolute paths when including files. Explain why included files should always reside outside of the server root directory. Demonstrate how PHP can make client side frames redundant. [Evaluation Methods] Assignment 1: Use PHP as a Template System [Topic]

Output: Using PHP as a simple template engine

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Note: This is meant as an overview. No in-depth knowledge yet. Briefly discuss key characteristics of a well written PHP_application. Demonstrate how to write readable and properly indented code. Demonstrate basic knowledge about coding conventions, especially the PEAR coding standard. Explain what revision control is. Show basic knowledge about phpDocumentor. Use the most basic tags in phpDocumentor and produce generated documentation for your code. Explain what bug tracking is. List a few well known bug trackers. [Evaluation Methods] (Most assignments will touch upon these concepts in some way.) Final assignment. Final exam. [Topic]

Output: PHP best practices overview

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Explain the concept of identifiers and list some identifier names one is not allowed to use in PHP. Explain the concept of sigils. Explain the consept of data types and compare strong and weak typing. Demonstrate type checking and type juggling. Recognize that all user-submitted data, and all data-base results, are strings to PHP. Demonstrate how to check for numeric values in strings. Explain the null value, and describe the difference between variables that are null and variables that have not been set. Demonstrate how to use the isset() and empty() functions. Explain what values in PHP that convert to false, when used in a boolean check. Demonstrate usage of variables and constants, using best practice naming conventions. Recognize the different kinds of constants in PHP (built in, magic, user defined; global, class). Demonstrate different syntaxes for setting constants (define and const - also for global constants since PHP 5.3) Explain the concept of statements. Demonstrate correct usage of statements and block statements. Explain the concept of expressions. Demonstrate correct usage of expressions. Explain what operators are and demonstrate correct usage of all common operators. Explain the concept of functions and all associated terminology and demonstrate how to write and use functions. Explain and use assignment by value and assignment by reference. Explain what arrays are in PHP and contrast the implementation to a few other programming languages. Demonstrate how to create and manipulate arrays and how to access individual items in arrays. Recognize all error levels in PHP and explain the difference between an error and an exception. Demonstrate how to handle errors appropriately. [Evaluation Methods] (Modules with exercises are appreciated.) Final assignment. Final exam. [Topic]

Output: Programming concepts

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Explain the most commonly used HTTP methods (get, post, head) Demonstrate how to fetch information from the client using $_SERVER. Explain MIME-types, and demonstrate how to set MIME-types using PHP’s header-function. [Evaluation Methods] Module 2 (a): Emulate HTTP-connections with netcat or telnet Module 2 (b): Analyze HTTP-traffic using Firebug or a similar tool. Final assignment. Final exam. [Topic]

Output: HTTP

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Note: For any audience using non ascii-characters (almost everybody outside the USA and UK) this is essential! Describe the basics of character encodings and compare the terminology used by Unicode to the terminology used in HTTP-headers encoding vs. charset. Demonstrate how to specify the encoding used in a script (the setting on your editor or IDE). Explain the difference between multi-byte encodings and single-byte encodings. Demonstrate how to use multi-byte string functions in PHP 5.x. Recognize problems that might occur in PHP because of misinterpreted character encodings. Demonstrate how to set character encoding in HTTP-headers, using the http-server tools and PHP. List the characters that have a highest potential for abuse (e.g. “null” and “eof”) and demonstrate how to filter input to avoid them using ctype functions. Demonstrate how to set the encoding (and collation) in a MySQL table or field, using PhpMyAdmin or a similar tool. Demonstrate how to convert text between different encodings. [Evaluation Methods] Assignment 3. Final assignment Final exam Extra questions for SS 2: Explain what a BOM is and how it can cause problems for PHP scripts. What is the difference between little endian and big endian UTF-16? What is Unicode normalization? [Topic]

Output: Character encoding

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Explain the concept of locales. Demonstrate how to set timezones for PHP scripts. Demonstrate how to set locale for PHP scripts. Explain the concept of collation and demonstrate how to use locale aware string and array comparison and sorting. Demonstrate how locale and timezone information affects date and time functionality in PHP. Use the basic date and time functions. [Evaluation Methods] (Modules with exercises are appreciated.) Final exam Final assignment [Topic]

Output: Locales, timezones and time functions.

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Explain the concept of a string. Compare the two types of strings there is in PHP 6. Demonstrate how to set them and convert between them. Demonstrate how to get the length of a string and access its characters by index Demonstrate how to handle single and double quotes in strings with variables. Demonstrate how to concatenate strings. Demonstrate how to use heredoc and nowdoc. Recognize the two syntaxes that exist for heredoc as of PHP 5.3. Demonstrate how to escape characters in strings. Demonstrate correct usage of basic string functions, e.g. strlen, substr, strstr, strpos, trim, strtolower, with variants. Demonstrate how to compare strings, using operators and comparison functions like strcmp or strcoll. Demonstrate how to check the integrity of string contents using the ctype-functions. Explain the concept of regular expressions, exemplify when they can be used and demonstrate simple usage. [Evaluation Methods] Assignment 3. Final exam. Final assignment. [Topic]

Output: Strings

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Demonstrate how to iterate over an array using the foreach function. Demonstrate how to sort arrays. Demonstrate how to perform a function call on each value in an array. Specifically, demonstrate how to remove magic quotes from GPC-data. Explain what the cursor is in an array and demonstrate how to walk through arrays. Demonstrate how to use assign multiple variables from array values using the list() language construct. Demonstrate how to check for the existence of specific keys or values within an array. Demonstrate how to attach and how to delete values at both the bottom and top of an array. [Evaluation Methods] Assignment 3. Final exam. Final assignment. [Topic]

Output: Array usage and array functions

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Explain some benefits of Object Oriented programming compared to procedural programming. Explain basic OO terminology. Demonstrate how to define and instantiate classes in PHP. Explain constructors and destructors, how to name constructors in PHP 4 and 5+ and how to use constructors. Demonstrate how to use the $this pseudovariable. Explain the concept of inheritance och demonstrate how to use the extends keyword. Explain the concept of polymorfism and demonstrate how to use interfaces and abstract classes in PHP. Briefly explain the differences in the object model between PHP 4 and PHP 5. Explain visibility of properties and methods. Explain class constants, static properties and methods and demonstrate how to use the scope resolution operator (Paamayim Nekudotayim). [Evaluation Methods] (Modules with exercises are appreciated.) Final exam Final assignment [Topic]

Output: Objects and classes (simple overview)

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Recognize the types of errors in PHP. Handle interaction errors e.g. GET-data does not match DB-record might produce a 404. Use good error handling strategies. E.g: Differentiate between development servers (show on page) vs. production servers (log errors). Make usable error pages and understandable error messages. Send the correct HTTP status code for error pages. Recognize exceptions and handle them using try and catch. [Evaluation Methods] (Modules with exercises are appreciated.) Final exam. Final assignment. [Topic]

Output: Error handling and exceptions

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Recognize what separation of concerns mean for PHP development. Recognize the following concepts: Presentation logic and templates, business logic and data storage logic. Demonstrate a secure and logical directory structure for PHP applictions. Explain include paths. Demonstrate how to write an application that does not depend on being in a specific root directory. Demonstrate a good strategy for filtering all untrusted data. Demonstrate consistent and appropriate escaping of output data. Implement usable, SEO-friendly and hackable URL:s. Recognize rewrite rules. Recognize the abbreviation MVC and briefly explain the rationale behind it. [Evaluation Methods] Exercise 4. Final exam. Final assignment. [Topic]

Output: Server side architecture

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Explain why client side checks only can be used to offload a server and provide better usability, never for security. Explain why GPC-data might be quoted in PHP 4.x and 5.x. Explain what problems magic quotes were intended to solve, why they did not work properly and are being removed in PHP 6 and how they can be removed in a script. Explain how the superglobal array $_POST relates to name attributes in HTML forms. Demonstrate handling posted data. Recognize the usage of register globals and explain why it is a security hazard. Recognize the bad habit of manually making EGPCS-data into regular variables ($foo = $_POST[‘foo’] or extract($_POST)). Recognize the usage of $_REQUEST and explain why it is considered bad practice to use it. Recognize how sensitive data can be transmitted securily, using encryption. Recognize the abbreviations SSL and TLS. [Evaluation Methods] Exercise 5. Final exam. Final assignment. [Topic]

Output: Handling posted data

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Demonstrate simple usage of the mail() function in PHP. Recognize the concept SMTP injection and demonstrate how to avoid it. [Evaluation Methods] Exercise 5. Final exam. Final assignment. [Topic]

Output: Sending email

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Recognize the sessionless nature of HTTP. Recognize session fixation and session hijacking. Use session_regenerate_id and set session ID using cookies only. Recognize HTTP-authentication in PHP. Preventing multiple submits of a form. Demonstrate how to prevent cross-posting using a session variable. [Evaluation Methods] Final exam. Final assignment. [Topic]

Output: Sessions and authentication

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Explain the concept of cookies and how they are passed to the server from the browser. Demonstrate how to set and read cookies. Explain the security benefits of server side only cookies, and demonstrate how to set them. [Evaluation Methods] Final exam. Final assignment. [Topic]

Output: Cookies

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Demonstrate how to read from and write to files. Recognize the different flags used to control the opening of file sockets. Recognize the most common security problems when usiing file functions. Demonstrate how to safely handle files uploaded by the user. [Evaluation Methods] Final exam. Final assignment. [Topic]

Output: File handling and storing data in text files

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] List some common Database Management Systems (DBMS). List some common alternatives to storing data in a relational database and briefly explain the merits and disadvantages of each option. Explain how SQLite can be used from every modern PHP installation. (Note: SQLite is primarily included to provide a way to explain data access abstraction using PDO.) Give an overview of how a relational database works. Recognize the terminology used about databases (relation/table, tuple/row, attribute/field/column, default values, NULL, keys, etc). Briefly explain the concept of normalization and recognize the related glossary (keys, functional dependency) List the available data types in MySQL and demonstrate proper usage of the most common ones. Explain the concept of indexes. Demonstrate how to use indexes in MySQL. Recognize the concept of a storage engines in MySQL and briefly explain the main differences between MyISAM and InnoDB. Demonstrate how to use PhpMyAdmin or a graphical tool to set up a database. Make a user with privileges suitable for PHP scripts. Demonstrate how to run queries in the tool. Demonstrate how to backup/dump a MySQL database. Question to reviewers: Is it possible to wait with constraints and referential integrity (foreign keys) until Server Side Scripting 2? [Evaluation Methods] Final assignment Final exam [Topic]

Output: Relational Database concepts and MySQL fundamentals

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Recognize the glossary of SQL (DDL, DML, CRUD) Demonstrate how to access a MySQL DBMS from a CLI tool. Demonstrate how to SELECT individual records and groups of records; SORT-ing and LIMIT-ing of the results. Demonstrate how to use JOIN. Demonstrate simple usage of SQL-functions (count!) Demonstrate how to INSERT data into a table. Demonstrate how to UPDATE a table and explain why one should always use the WHERE clause doing so. Demonstrate how to DELETE data and explain why one should always use the WHERE clause doing so. [Evaluation Methods] Final assignment Final exam [Topic]

Output: SQL

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Recognize all 3 built in API’s to access a MySQL database from PHP (mysql, mysqli, PDO). Discuss their strengths and downsides. Demonstrate how to connect to a DBMS with PDO, prepare and execute statements, fetch single results and iterate over result sets. Recognize how to access reults from a prepared statement as normal arrays, associative arrays, objects and objects belonging to a specific class. Demonstrate safe usage of user submitted data in SQL. Recognize how to manually quote user submitted data. Discuss the benefits of prepared statements. Demonstrate how to handle errors and unexpected results using PDO. Demonstrate safe handling of database credentials. [Evaluation Methods] Final assignment Final exam [Topic]

Output: PDO

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Recognize how to use the mysql and the mysqli functions. Discuss how to safely handle user submitted data using the mysql and the mysqli functions. [Evaluation Methods] Final exam [Topic]

Output: The mysql and the mysqli functions

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Recognize PEAR, PECL, SPL and the most well known PHP Component libraries? Recognize the most common PHP Frameworks. Recognize the most common PHP applications/Content Managament Systems. Recognize the usage of PHP for extended functionality for some big websites (e.g. Facebook) [Evaluation Methods] Final exam [Topic]

Output: SPL, PEAR and Frameworks

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Recognize the most common formats for data interchange. Summarize the Ajax pattern for updating a web page. Briefly describe the concepts of API’s and Web Services. [Evaluation Methods] Final exam [Topic]

Output: Web Services, API’s, RSS, JSON and Ajax

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Competency] Recognize the most important technical considerations one must know when chosing a web host. List the most important security considerations one must know about shared hosting. Demonstrate usage of a web host control panel. [Evaluation Methods] Final assignment Final exam [Topic]

Output: Shared hosting

Interact/Server-Side Scripting 1 - Web Education Community Group


Input: [Attribute Type] CDATA [Definition]

Output: Character data


Input: [Attribute Type] ID [Definition]

Output: A document-unique identifier


Input: [Attribute Type] IDREF [Definition]

Output: A reference to a document-unique identifier


Input: [Attribute Type] IDREFS [Definition]

Output: A space-separated list of references to document-unique identifiers


Input: [Attribute Type] NAME [Definition]

Output: A name with the same character constraints as ID above


Input: [Attribute Type] NMTOKEN [Definition]

Output: A name composed of only name tokens as defined in XML 1.0 [XML].


Input: [Attribute Type] NMTOKENS [Definition]

Output: One or more white space separated NMTOKEN values


Input: [Attribute Type] PCDATA [Definition]

Output: Processed character data


Input: [Identifier] Individual [Comment] Must be supported. [Semantics]

Output: The Party is a single individual

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] Group [Comment] Must be supported. [Semantics]

Output: The Party represents a defined group with multiple individual members

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] All [Comment] For example, may be used to indicate all the users of a specific social network the party is a member of. Note that “group” scope is also assumed. [Semantics]

Output: All the collective individuals within a context

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] AllConnections [Comment] For example, may be used to indicate all “friends” of the Party. Note that “group” scope is also assumed. [Semantics]

Output: All the first-level connections of the Party

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] All2ndConnections [Comment] For example, may be used to indicate all “friends of friends” of the Party. Note that “group” scope is also assumed. [Semantics]

Output: All the second-level connections of the Party

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Identifier] AllGroups [Comment] For example, may be used to indicate all groups that the Party is a member of. Note that “group” scope is also assumed. [Semantics]

Output: All the group connections of the Party

ODRL Version 2.1 Common Vocabulary | ODRL Community Group


Input: [Final] Final [Description] The operation succeeded. [QName Local Name]

Output: Success

XML Key Management Specification (XKMS 2.0)


Input: [Final] Final [Description] The service does not support the protocol version specified in the request. [QName Local Name]

Output: VersionMismatch

XML Key Management Specification (XKMS 2.0)


Input: [Final] Final [Description] An error occurred that was due to the message sent by the sender. [QName Local Name]

Output: Sender

XML Key Management Specification (XKMS 2.0)


Input: [Final] Final [Description] An error occurred at the receiver. [QName Local Name]

Output: Receiver

XML Key Management Specification (XKMS 2.0)


Input: [Final] Not Final [Description] The service has not acted on the request. In order for the request to be acted upon the request MUST be represented with the specified nonce in accordance with the two phase protocol [QName Local Name]

Output: Represent

XML Key Management Specification (XKMS 2.0)


Input: [Final] Not Final [Description] The request has been accepted for processing and the service will return the result asynchronously [QName Local Name]

Output: Pending

XML Key Management Specification (XKMS 2.0)


Input: [Event Type] pointerdown [Sync/Async] Sync [Cancellable] Yes Document, Element [Event object interface] PointerEvent [Default Action] Varies: when the pointer is primary, all default actions of the mousedown event [Bubbles]

Output: Yes


Input: [Event Type] pointerup [Sync/Async] Sync [Cancellable] Yes Document, Element [Event object interface] PointerEvent [Default Action] Varies: when the pointer is primary, all default actions of mouseup [Bubbles]

Output: Yes


Input: [Event Type] pointercancel [Sync/Async] Sync [Cancellable] Yes Document, Element [Event object interface] PointerEvent [Default Action] None [Bubbles]

Output: Yes


Input: [Event Type] pointermove [Sync/Async] Sync [Cancellable] Yes Document, Element [Event object interface] PointerEvent [Default Action] Varies: when the pointer is primary, all default actions of mousemove [Bubbles]

Output: Yes


Input: [Event Type] pointerover [Sync/Async] Sync [Cancellable] Yes Document, Element [Event object interface] PointerEvent [Default Action] Varies: when the pointer is primary, all default actions of mouseover [Bubbles]

Output: Yes


Input: [Event Type] pointerout [Sync/Async] Sync [Cancellable] Yes Document, Element [Event object interface] PointerEvent [Default Action] Varies: when the pointer is primary, all default actions of mouseout [Bubbles]

Output: Yes


Input: [Event Type] pointerenter [Sync/Async] Sync [Cancellable] Yes Document, Element [Event object interface] PointerEvent [Default Action] Varies: when the pointer is primary, all default actions of mouseenter [Bubbles]

Output: No


Input: [Event Type] pointerleave [Sync/Async] Sync [Cancellable] Yes Document, Element [Event object interface] PointerEvent [Default Action] Varies: when the pointer is primary, all default actions of mouseleave [Bubbles]

Output: No


Input: [Event Type] gotpointercapture [Sync/Async] Async [Cancellable] No Element [Event object interface] PointerEvent [Default Action] None [Bubbles]

Output: Yes


Input: [Event Type] lostpointercapture [Sync/Async] Async [Cancellable] No Element [Event object interface] PointerEvent [Default Action] None [Bubbles]

Output: Yes


Input: [Event Type] pointerdown [Sync/Async] Sync [Bubbles] Yes Document, Element [Event object interface] PointerEvent [Default Action] Varies: when the pointer is primary, all default actions of the mousedown event [Cancellable]

Output: Yes


Input: [Event Type] pointerup [Sync/Async] Sync [Bubbles] Yes Document, Element [Event object interface] PointerEvent [Default Action] Varies: when the pointer is primary, all default actions of mouseup [Cancellable]

Output: Yes


Input: [Event Type] pointercancel [Sync/Async] Sync [Bubbles] Yes Document, Element [Event object interface] PointerEvent [Default Action] None [Cancellable]

Output: Yes