All Downloads are FREE. Search and download functionalities are using the official Maven repository.

relaxng.embed.rnc Maven / Gradle / Ivy

The newest version!
datatypes w = "http://whattf.org/datatype-draft"
namespace local = ""

# #####################################################################
##  RELAX NG Schema for HTML 5: Embedded Content                      #
# #####################################################################

#######################################################################
## Replaced Content

## Images: 

	img.elem =
		element img { img.inner & img.attrs }
	img.attrs =
		(	common.attrs
		&	img.attrs.src
		&	img.attrs.alt? # ARIA: if alt empty, only allowed role value is "presentation"; check in assertions
		&	img.attrs.height?
		&	img.attrs.width?
		&	img.attrs.usemap?
		&	img.attrs.ismap?
		&	img.attrs.border? # obsolete
		&	(	common.attrs.aria.implicit.img
			|	common.attrs.aria
			)?
		)
		img.attrs.src =
			attribute src {
				common.data.uri.non-empty
			}
		img.attrs.alt =
			attribute alt {
				text
			}
		img.attrs.height =
			attribute height {
				common.data.integer.non-negative
			}
		img.attrs.width =
			attribute width {
				common.data.integer.non-negative
			}
		img.attrs.usemap =
			attribute usemap {
				common.data.hash-name
			}
		img.attrs.ismap =
			attribute ismap {
				w:string "ismap" | w:string ""
			}
		img.attrs.border =
			attribute border {
				common.data.zero
			}
	img.inner =
		empty

	common.elem.phrasing |= img.elem

## Plug-ins: 

	embed.elem =
		element embed { embed.inner & embed.attrs }
	embed.attrs =
		(	common.attrs
		&	embed.attrs.src?
		&	embed.attrs.type?
		&	embed.attrs.height?
		&	embed.attrs.width?
		&	embed.attrs.other*
		&	(	common.attrs.aria.landmark.application
			|	common.attrs.aria.landmark.document
			|	common.attrs.aria.role.img
			)?
		)
		embed.attrs.src =
			attribute src {
				common.data.uri.non-empty
			}
		embed.attrs.type =
			attribute type {
				common.data.mimetype
			}
		embed.attrs.height =
			attribute height {
				common.data.integer.non-negative
			}
		embed.attrs.width =
			attribute width {
				common.data.integer.non-negative
			}
		embed.attrs.other = # REVISIT common.attrs
			attribute local:* - ( src 
			                    | type 
			                    | height 
			                    | width 
			                    | id 
			                    | class
			                    | title 
			                    | dir 
			                    | lang 
			                    | translate 
			                    | style 
			                    | tabindex 
			                    | contextmenu 
			                    | contenteditable 
			                    | draggable 
			                    | dropzone
			                    | hidden
			                    | onabort
			                    | onblur
			                    | oncanplay
			                    | oncanplaythrough
			                    | onchange
			                    | onclick
			                    | oncontextmenu
			                    | ondblclick
			                    | ondrag
			                    | ondragend
			                    | ondragenter
			                    | ondragleave
			                    | ondragover
			                    | ondragstart
			                    | ondrop
			                    | ondurationchange
			                    | onemptied
			                    | onended
			                    | onerror
			                    | onfocus
			                    | oninput
			                    | oninvalid
			                    | onkeydown
			                    | onkeypress
			                    | onkeyup
			                    | onload
			                    | onloadeddata
			                    | onloadedmetadata
			                    | onloadstart
			                    | onmousedown
			                    | onmousemove
			                    | onmouseout
			                    | onmouseover
			                    | onmouseup
			                    | onmousewheel
			                    | onpause
			                    | onplay
			                    | onplaying
			                    | onprogress
			                    | onratechange
			                    | onreset
			                    | onscroll
			                    | onseeked
			                    | onseeking
			                    | onselect
			                    | onshow
			                    | onstalled
			                    | onsubmit
			                    | onsuspend
			                    | ontimeupdate
			                    | onvolumechange
			                    | onwaiting
			                    | onafterprint
			                    | onbeforeprint
			                    | onbeforeunload
			                    | onhashchange
			                    | onmessage
			                    | onoffline
			                    | ononline
			                    | onpopstate
			                    | onredo
			                    | onresize
			                    | onstorage
			                    | onundo
			                    | onunload
			                    | role
			                    | aria-atomic
			                    | aria-busy
			                    | aria-controls
			                    | aria-describedby
			                    | aria-disabled
			                    | aria-dropeffect
			                    | aria-expanded
			                    | aria-flowto
			                    | aria-grabbed
			                    | aria-haspopup
			                    | aria-hidden
			                    | aria-invalid
			                    | aria-label
			                    | aria-labelledby
			                    | aria-live
			                    | aria-owns
			                    | aria-relevant
			                    | aria-required
			                    | spellcheck
			                    | accesskey
			                    | itemref
			                    | itemprop
			                    | itemscope
			                    | itemtype
			                    | itemid
			                    | name
			                    | align
			                    | about
			                    | prefix
			                    | property
			                    | typeof
			                    | vocab
			                    | content
			                    | datatype
			                    | href
			                    | rel
			                    | resource
			                    | rev
			                    | inlist
			                    | its-loc-note
                                            | its-loc-note-type
                                            | its-loc-note-ref
                                            | its-term-info-ref
                                            | its-term
                                            | its-term-confidence
                                            | its-within-text
                                            | its-domain-mapping
                                            | its-ta-confidence
                                            | its-ta-class-ref
                                            | its-ta-ident
                                            | its-ta-ident-ref
                                            | its-ta-source
                                            | its-locale-filter-list
                                            | its-locale-filter-type
                                            | its-person
                                            | its-person-ref
                                            | its-org
                                            | its-org-ref
                                            | its-tool
                                            | its-tool-ref
                                            | its-rev-person
                                            | its-rev-person-ref
                                            | its-rev-org
                                            | its-rev-org-ref
                                            | its-rev-tool
                                            | its-rev-tool-ref
                                            | its-prov-ref
                                            | its-provenance-records-ref
                                            | its-loc-quality-issues-ref
                                            | its-loc-quality-issue-type
                                            | its-loc-quality-issue-comment
                                            | its-loc-quality-issue-severity
                                            | its-loc-quality-issue-profile-ref
                                            | its-loc-quality-issue-enabled
                                            | its-loc-quality-rating-score
                                            | its-loc-quality-rating-vote
                                            | its-loc-quality-rating-score-threshold
                                            | its-loc-quality-rating-vote-threshold
                                            | its-loc-quality-rating-profile-ref
                                            | its-mt-confidence
                                            | its-allowed-characters
                                            | its-storage-size
                                            | its-storage-encoding
                                            | its-line-break-type
                                            | its-annotators-ref
			                    ) 
			{
				string
			}
	embed.inner =
		empty

	common.elem.phrasing |= embed.elem

## Generic Objects: 

	object.elem.flow =
		element object { object.inner.flow & object.attrs }
	object.elem.phrasing =
		element object { object.inner.phrasing & object.attrs }
	object.attrs =
		(	common.attrs
		&	(	(	object.attrs.data
				&	object.attrs.type?
				)
			|	object.attrs.type
			)
#		&	object.attrs.classid?
#		&	object.attrs.codebase?
#		&	object.attrs.codetype?
		&	object.attrs.height?
		&	object.attrs.width?
		&	object.attrs.usemap?
		&	object.attrs.name?
		&	common-form.attrs.form?
		&	(	common.attrs.aria.landmark.application
			|	common.attrs.aria.landmark.document
			|	common.attrs.aria.role.img
			)?
		)
		object.attrs.data =
			attribute data {
				common.data.uri.non-empty
			}
		object.attrs.type =
			attribute type {
				common.data.mimetype
			}
		object.attrs.height =
			attribute height {
				common.data.integer.non-negative
			}
		object.attrs.width =
			attribute width {
				common.data.integer.non-negative
			}
		object.attrs.usemap =
			attribute usemap {
				common.data.hash-name
			}
		object.attrs.name =
			attribute name {
				common.data.browsing-context
			}
	object.inner.flow =
		(	param.elem*
		,	common.inner.transparent.flow
		)
	object.inner.phrasing =
		(	param.elem*
		,	common.inner.phrasing
		)

	common.elem.flow |= object.elem.flow
	common.elem.phrasing |= object.elem.phrasing

## Initialization Parameters: 

	param.elem =
		element param { param.inner & param.attrs }
	param.attrs =
		(	common.attrs
		&	param.attrs.name
		&	param.attrs.value
		&	(	common.attrs.aria.role.presentation
			|	common.attrs.aria.role.menuitem
			)?
		)
		param.attrs.name =
			attribute name {
				string
			}
		param.attrs.value =
			attribute value {
				string
			}
	param.inner =
		( empty )

## Inline Frame: