Imported Upstream version 3.6.0

Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
This commit is contained in:
Jo Shields
2014-08-13 10:39:27 +01:00
commit a575963da9
50588 changed files with 8155799 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<element name="root">
<element name="v1">
<data type="mytype" datatypeLibrary="http://tempuri.org/mytypes" />
</element>
<element name="v2">
<data type="int" />
</element>
</element>
</start>
</grammar>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://tempuri.org/mytypes">
<start>
<element name="root">
<element name="v2">
<data type="int" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<param name="minExclusive">0</param>
<param name="maxExclusive">10</param>
</data>
</element>
<element name="v1">
<data type="mytype" />
</element>
</element>
</start>
</grammar>

View File

@@ -0,0 +1,38 @@
2009-01-20 Atsushi Enomoto <atsushi@ximian.com>
* 463267.rng : new test file.
2009-01-20 Atsushi Enomoto <atsushi@ximian.com>
* 463264.rng : new test file.
2008-11-11 Atsushi Enomoto <atsushi@ximian.com>
* include-default-namespace.rnc,
include-default-namespace-included.rnc,
include-default-namespace.xml : new test files.
2007-04-18 Atsushi Enomoto <atsushi@ximian.com>
* schemas-xmlsoap-or-ws-2005-05-identity.rnc : new test schema.
2006-04-11 Atsushi Enomoto <atsushi@ximian.com>
* nvdl.nvdl, nvdl.rng : new file for nvdl validation.
2006-04-04 Atsushi Enomoto <atsushi@ximian.com>
* atom.rnc : new file for RNC parser test (It is from
http://atompub.org/2005/08/17/atom.rnc i.e.
http://www.ietf.org/rfc/rfc4287.txt).
2004-03-17 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
* Added relaxng.rng and relaxng.rnc.
2003-04-29 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
* Started.
* added ChangeLog, SimpleElementPattern1.xml, SimpleElementPattern1.rng,
SimpleElementPattern2.xml, SimpleElementPattern2.rng, team.xml,
team.rng.

View File

@@ -0,0 +1,5 @@
<element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
<element name='bar'>
<empty/>
</element>
</element>

View File

@@ -0,0 +1 @@
<foo><bar /></foo>

View File

@@ -0,0 +1,8 @@
<element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
<element name='bar'>
<element name='baz'><empty/></element>
</element>
<element name='hoge'>
<element name='fuga'><empty/></element>
</element>
</element>

View File

@@ -0,0 +1,4 @@
<foo>
<bar><baz/></bar>
<hoge><fuga/></hoge>
</foo>

View File

@@ -0,0 +1,339 @@
# -*- rnc -*-
# RELAX NG Compact Syntax Grammar for the
# Atom Format Specification Version 11
namespace atom = "http://www.w3.org/2005/Atom"
namespace xhtml = "http://www.w3.org/1999/xhtml"
namespace s = "http://www.ascc.net/xml/schematron"
namespace local = ""
start = atomFeed | atomEntry
# Common attributes
atomCommonAttributes =
attribute xml:base { atomUri }?,
attribute xml:lang { atomLanguageTag }?,
undefinedAttribute*
# Text Constructs
atomPlainTextConstruct =
atomCommonAttributes,
attribute type { "text" | "html" }?,
text
atomXHTMLTextConstruct =
atomCommonAttributes,
attribute type { "xhtml" },
xhtmlDiv
atomTextConstruct = atomPlainTextConstruct | atomXHTMLTextConstruct
# Person Construct
atomPersonConstruct =
atomCommonAttributes,
(element atom:name { text }
& element atom:uri { atomUri }?
& element atom:email { atomEmailAddress }?
& extensionElement*)
# Date Construct
atomDateConstruct =
atomCommonAttributes,
xsd:dateTime
# atom:feed
atomFeed =
[
s:rule [
context = "atom:feed"
s:assert [
test = "atom:author or not(atom:entry[not(atom:author)])"
"An atom:feed must have an atom:author unless all "
~ "of its atom:entry children have an atom:author."
]
]
]
element atom:feed {
atomCommonAttributes,
(atomAuthor*
& atomCategory*
& atomContributor*
& atomGenerator?
& atomIcon?
& atomId
& atomLink*
& atomLogo?
& atomRights?
& atomSubtitle?
& atomTitle
& atomUpdated
& extensionElement*),
atomEntry*
}
# atom:entry
atomEntry =
[
s:rule [
context = "atom:entry"
s:assert [
test = "atom:link[@rel='alternate'] "
~ "or atom:link[not(@rel)] "
~ "or atom:content"
"An atom:entry must have at least one atom:link element "
~ "with a rel attribute of 'alternate' "
~ "or an atom:content."
]
]
s:rule [
context = "atom:entry"
s:assert [
test = "atom:author or "
~ "../atom:author or atom:source/atom:author"
"An atom:entry must have an atom:author "
~ "if its feed does not."
]
]
]
element atom:entry {
atomCommonAttributes,
(atomAuthor*
& atomCategory*
& atomContent?
& atomContributor*
& atomId
& atomLink*
& atomPublished?
& atomRights?
& atomSource?
& atomSummary?
& atomTitle
& atomUpdated
& extensionElement*)
}
# atom:content
atomInlineTextContent =
element atom:content {
atomCommonAttributes,
attribute type { "text" | "html" }?,
(text)*
}
atomInlineXHTMLContent =
element atom:content {
atomCommonAttributes,
attribute type { "xhtml" },
xhtmlDiv
}
atomInlineOtherContent =
element atom:content {
atomCommonAttributes,
attribute type { atomMediaType }?,
(text|anyElement)*
}
atomOutOfLineContent =
element atom:content {
atomCommonAttributes,
attribute type { atomMediaType }?,
attribute src { atomUri },
empty
}
atomContent = atomInlineTextContent
| atomInlineXHTMLContent
| atomInlineOtherContent
| atomOutOfLineContent
# atom:author
atomAuthor = element atom:author { atomPersonConstruct }
# atom:category
atomCategory =
element atom:category {
atomCommonAttributes,
attribute term { text },
attribute scheme { atomUri }?,
attribute label { text }?,
undefinedContent
}
# atom:contributor
atomContributor = element atom:contributor { atomPersonConstruct }
# atom:generator
atomGenerator = element atom:generator {
atomCommonAttributes,
attribute uri { atomUri }?,
attribute version { text }?,
text
}
# atom:icon
atomIcon = element atom:icon {
atomCommonAttributes,
(atomUri)
}
# atom:id
atomId = element atom:id {
atomCommonAttributes,
(atomUri)
}
# atom:logo
atomLogo = element atom:logo {
atomCommonAttributes,
(atomUri)
}
# atom:link
atomLink =
element atom:link {
atomCommonAttributes,
attribute href { atomUri },
attribute rel { atomNCName | atomUri }?,
attribute type { atomMediaType }?,
attribute hreflang { atomLanguageTag }?,
attribute title { text }?,
attribute length { text }?,
undefinedContent
}
# atom:published
atomPublished = element atom:published { atomDateConstruct }
# atom:rights
atomRights = element atom:rights { atomTextConstruct }
# atom:source
atomSource =
element atom:source {
atomCommonAttributes,
(atomAuthor*
& atomCategory*
& atomContributor*
& atomGenerator?
& atomIcon?
& atomId?
& atomLink*
& atomLogo?
& atomRights?
& atomSubtitle?
& atomTitle?
& atomUpdated?
& extensionElement*)
}
# atom:subtitle
atomSubtitle = element atom:subtitle { atomTextConstruct }
# atom:summary
atomSummary = element atom:summary { atomTextConstruct }
# atom:title
atomTitle = element atom:title { atomTextConstruct }
# atom:updated
atomUpdated = element atom:updated { atomDateConstruct }
# Low-level simple types
atomNCName = xsd:string { minLength = "1" pattern = "[^:]*" }
# Whatever a media type is, it contains at least one slash
atomMediaType = xsd:string { pattern = ".+/.+" }
# As defined in RFC 3066
atomLanguageTag = xsd:string {
pattern = "[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*"
}
# Unconstrained; it's not entirely clear how IRI fit into
# xsd:anyURI so let's not try to constrain it here
atomUri = text
# Whatever an email address is, it contains at least one @
atomEmailAddress = xsd:string { pattern = ".+@.+" }
# Simple Extension
simpleExtensionElement =
element * - atom:* {
text
}
# Structured Extension
structuredExtensionElement =
element * - atom:* {
(attribute * { text }+,
(text|anyElement)*)
| (attribute * { text }*,
(text?, anyElement+, (text|anyElement)*))
}
# Other Extensibility
extensionElement =
simpleExtensionElement | structuredExtensionElement
undefinedAttribute =
attribute * - (xml:base | xml:lang | local:*) { text }
undefinedContent = (text|anyForeignElement)*
anyElement =
element * {
(attribute * { text }
| text
| anyElement)*
}
anyForeignElement =
element * - atom:* {
(attribute * { text }
| text
| anyElement)*
}
# XHTML
anyXHTML = element xhtml:* {
(attribute * { text }
| text
| anyXHTML)*
}
xhtmlDiv = element xhtml:div {
(attribute * { text }
| text
| anyXHTML)*
}
# EOF

View File

@@ -0,0 +1,5 @@
grammar {
start = root
root = element root { empty }
}

View File

@@ -0,0 +1,4 @@
default namespace = "urn:foo"
include "include-default-namespace-included.rnc"

View File

@@ -0,0 +1 @@
<root xmlns="urn:foo" />

View File

@@ -0,0 +1,82 @@
<?xml version="1.0"?>
<!-- $Id: nvdl.nvdl,v 1.2 2004/05/30 14:37:33 makoto Exp $ -->
<!--
Inline schemas in NVDL schemas are explicitly allowed by nvdl.rnc.
This schema allows other
-->
<rules startMode="root" xmlns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0">
<mode name="root">
<namespace ns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0">
<validate schema="nvdl.rng">
<mode>
<namespace ns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0" match="attributes">
<reject/>
</namespace>
<!-- If we do not allow attribute sections for null URIs, we do not need
the following <namespace> -->
<namespace ns="" match="attributes">
<attach/>
</namespace>
<anyNamespace match="elements attributes">
<!-- This action allows any foreign elements and attributes silently. -->
<allow>
<mode>
<anyNamespace>
<attach/>
</anyNamespace>
</mode>
</allow>
</anyNamespace>
</mode>
<context path="schema">
<mode>
<namespace ns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0" match="attributes">
<reject/>
</namespace>
<namespace ns="" match="attributes">
<attach/>
</namespace>
<anyNamespace match="attributes">
<allow/>
</anyNamespace>
<anyNamespace match="elements">
<!-- This action allows the entire subtree to be validated against nvdl.rnc. -->
<attach>
<mode>
<anyNamespace>
<attach/>
</anyNamespace>
</mode>
</attach>
</anyNamespace>
<!-- If we do not allow attribute sections for null URIs, we do not need
the following <namespace> -->
</mode>
</context>
<context path="message">
<mode>
<namespace ns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0" match="attributes">
<reject/>
</namespace>
<!-- If we do not allow attribute sections for null URIs, we do not need
the following <namespace> -->
<namespace ns="" match="attributes">
<attach/>
</namespace>
<namespace ns="http://www.w3.org/XML/1998/namespace" match="attributes">
<!-- This action allows xml:* to be validated against ndvl.rnc. -->
<attach/>
</namespace>
<anyNamespace match="attributes">
<allow/>
</anyNamespace>
<anyNamespace match="elements">
<reject/>
</anyNamespace>
</mode>
</context>
</validate>
</namespace>
</mode>
</rules>

View File

@@ -0,0 +1,319 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: nvdl.rnc,v 1.5 2005/01/03 01:49:50 makoto Exp makoto $ -->
<grammar xmlns:nvdl="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" ns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<element name="rules">
<optional>
<ref name="schemaType"/>
</optional>
<zeroOrMore>
<ref name="trigger"/>
</zeroOrMore>
<choice>
<zeroOrMore>
<ref name="rule"/>
</zeroOrMore>
<group>
<attribute name="startMode">
<data type="NCName"/>
</attribute>
<oneOrMore>
<ref name="mode"/>
</oneOrMore>
</group>
</choice>
</element>
</start>
<define name="trigger">
<element name="trigger">
<attribute name="ns">
<data type="string"/>
</attribute>
<attribute name="name">
<data type="NCName"/>
</attribute>
</element>
</define>
<define name="mode">
<element name="mode">
<attribute name="name">
<data type="NCName"/>
</attribute>
<zeroOrMore>
<ref name="includedMode"/>
</zeroOrMore>
<zeroOrMore>
<ref name="rule"/>
</zeroOrMore>
</element>
</define>
<define name="includedMode">
<element name="mode">
<optional>
<attribute name="name">
<data type="NCName"/>
</attribute>
</optional>
<zeroOrMore>
<ref name="includedMode"/>
</zeroOrMore>
<zeroOrMore>
<ref name="rule"/>
</zeroOrMore>
</element>
</define>
<define name="rule">
<choice>
<element name="namespace">
<attribute name="ns">
<data type="string"/>
</attribute>
<optional>
<attribute name="wildcard">
<data type="string">
<param name="maxLength">1</param>
</data>
</attribute>
</optional>
<ref name="ruleModel"/>
</element>
<element name="anyNamespace">
<ref name="ruleModel"/>
</element>
</choice>
</define>
<define name="ruleModel">
<optional>
<attribute name="match">
<ref name="elementsOrAttributes"/>
</attribute>
</optional>
<ref name="actions"/>
</define>
<define name="elementsOrAttributes">
<list>
<choice>
<group>
<value>elements</value>
<value>attributes</value>
</group>
<group>
<value>attributes</value>
<value>elements</value>
</group>
<value>elements</value>
<value>attributes</value>
</choice>
</list>
</define>
<define name="actions">
<choice>
<ref name="cancelAction"/>
<group>
<zeroOrMore>
<ref name="noResultAction"/>
</zeroOrMore>
<choice>
<ref name="noResultAction"/>
<ref name="resultAction"/>
</choice>
<zeroOrMore>
<ref name="noResultAction"/>
</zeroOrMore>
</group>
</choice>
</define>
<define name="cancelAction">
<element name="cancelNestedActions">
<empty/>
</element>
</define>
<define name="noResultAction">
<choice>
<element name="validate">
<optional>
<ref name="schemaType"/>
</optional>
<zeroOrMore>
<choice>
<ref name="message"/>
<ref name="option"/>
</choice>
</zeroOrMore>
<ref name="schema"/>
<ref name="modeUsage"/>
</element>
<element>
<choice>
<name>allow</name>
<name>reject</name>
</choice>
<zeroOrMore>
<ref name="message"/>
</zeroOrMore>
<ref name="modeUsage"/>
</element>
</choice>
</define>
<define name="schema">
<choice>
<attribute name="schema">
<data type="anyURI"/>
</attribute>
<element name="schema">
<choice>
<text/>
<ref name="foreignElement"/>
</choice>
</element>
</choice>
</define>
<define name="message">
<choice>
<attribute name="message"/>
<element name="message">
<interleave>
<text/>
<attribute name="xml:lang"/>
</interleave>
</element>
</choice>
</define>
<define name="resultAction">
<element>
<choice>
<name>attach</name>
<name>attachPlaceHolder</name>
<name>unwrap</name>
</choice>
<zeroOrMore>
<ref name="message"/>
</zeroOrMore>
<ref name="modeUsage"/>
</element>
</define>
<define name="option">
<element name="option">
<attribute name="name">
<data type="anyURI"/>
</attribute>
<optional>
<attribute name="arg"/>
</optional>
<optional>
<attribute name="mustSupport">
<data type="boolean"/>
</attribute>
</optional>
</element>
</define>
<define name="modeUsage">
<optional>
<choice>
<attribute name="useMode">
<data type="NCName"/>
</attribute>
<ref name="nestedMode"/>
</choice>
</optional>
<zeroOrMore>
<element name="context">
<attribute name="path">
<ref name="path"/>
</attribute>
<optional>
<choice>
<attribute name="useMode">
<data type="NCName"/>
</attribute>
<ref name="nestedMode"/>
</choice>
</optional>
</element>
</zeroOrMore>
</define>
<define name="nestedMode">
<element name="mode">
<zeroOrMore>
<ref name="includedMode"/>
</zeroOrMore>
<zeroOrMore>
<ref name="rule"/>
</zeroOrMore>
</element>
</define>
<define name="schemaType">
<attribute name="schemaType">
<ref name="mediaType"/>
</attribute>
</define>
<define name="mediaType">
<a:documentation>5.1 of RFC 2045 allows &lt;any (US-ASCII) CHAR except SPACE, CTLs,
or tspecials&gt;, where
tspecials := "(" / ")" / "&lt;" / "&gt;" / "@" /
"," / ";" / ":" / "\" / &lt;"&gt;
"/" / "[" / "]" / "?" / "="
</a:documentation>
<data type="string">
<param name="pattern">\s*[0-9A-Za-z!#$%&amp;'\*\+\-\.\^_`\{\|\}~]*\\[0-9A-Za-z!#$%&amp;'\*\+\-\.\^_`\{\|\}~]*\s*</param>
</data>
</define>
<define name="path">
<data type="string">
<param name="pattern">\s*(/\s*)?\i\c*(\s*/\s*\i\c*)*\s*(\|\s*(/\s*)?\i\c*(\s*/\s*\i\c*)*\s*)*</param>
</data>
</define>
<define name="foreignElement">
<element>
<anyName>
<except>
<nsName/>
</except>
</anyName>
<zeroOrMore>
<attribute>
<anyName/>
</attribute>
</zeroOrMore>
<mixed>
<zeroOrMore>
<ref name="anyElement"/>
</zeroOrMore>
</mixed>
</element>
</define>
<define name="anyElement">
<element>
<anyName/>
<zeroOrMore>
<attribute>
<anyName/>
</attribute>
</zeroOrMore>
<mixed>
<zeroOrMore>
<ref name="anyElement"/>
</zeroOrMore>
</mixed>
</element>
</define>
<define name="foreignAttribute">
<attribute>
<anyName>
<except>
<nsName/>
<nsName ns=""/>
</except>
</anyName>
</attribute>
</define>
<define name="foreign">
<zeroOrMore>
<ref name="foreignAttribute"/>
</zeroOrMore>
<zeroOrMore>
<ref name="foreignElement"/>
</zeroOrMore>
</define>
</grammar>

View File

@@ -0,0 +1,63 @@
# RELAX NG XML syntax specified in compact syntax.
default namespace rng = "http://relaxng.org/ns/structure/1.0"
namespace local = ""
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
start = pattern
pattern =
element element { (nameQName | nameClass), (common & pattern+) }
| element attribute { (nameQName | nameClass), (common & pattern?) }
| element group|interleave|choice|optional
|zeroOrMore|oneOrMore|list|mixed { common & pattern+ }
| element ref|parentRef { nameNCName, common }
| element empty|notAllowed|text { common }
| element data { type, param*, (common & exceptPattern?) }
| element value { commonAttributes, type?, xsd:string }
| element externalRef { href, common }
| element grammar { common & grammarContent* }
param = element param { commonAttributes, nameNCName, xsd:string }
exceptPattern = element except { common & pattern+ }
grammarContent =
definition
| element div { common & grammarContent* }
| element include { href, (common & includeContent*) }
includeContent =
definition
| element div { common & includeContent* }
definition =
element start { combine?, (common & pattern+) }
| element define { nameNCName, combine?, (common & pattern+) }
combine = attribute combine { "choice" | "interleave" }
nameClass =
element name { commonAttributes, xsd:QName }
| element anyName { common & exceptNameClass? }
| element nsName { common & exceptNameClass? }
| element choice { common & nameClass+ }
exceptNameClass = element except { common & nameClass+ }
nameQName = attribute name { xsd:QName }
nameNCName = attribute name { xsd:NCName }
href = attribute href { xsd:anyURI }
type = attribute type { xsd:NCName }
common = commonAttributes, foreignElement*
commonAttributes =
attribute ns { xsd:string }?,
attribute datatypeLibrary { xsd:anyURI }?,
foreignAttribute*
foreignElement = element * - rng:* { (anyAttribute | text | anyElement)* }
foreignAttribute = attribute * - (rng:*|local:*) { text }
anyElement = element * { (anyAttribute | text | anyElement)* }
anyAttribute = attribute * { text }

View File

@@ -0,0 +1,335 @@
<?xml version="1.0"?>
<!-- RELAX NG for RELAX NG -->
<!-- $Id$ -->
<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
ns="http://relaxng.org/ns/structure/1.0"
xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<ref name="pattern"/>
</start>
<define name="pattern">
<choice>
<element name="element">
<choice>
<attribute name="name">
<data type="QName"/>
</attribute>
<ref name="open-name-class"/>
</choice>
<ref name="common-atts"/>
<ref name="open-patterns"/>
</element>
<element name="attribute">
<ref name="common-atts"/>
<choice>
<attribute name="name">
<data type="QName"/>
</attribute>
<ref name="open-name-class"/>
</choice>
<interleave>
<ref name="other"/>
<optional>
<ref name="pattern"/>
</optional>
</interleave>
</element>
<element name="group">
<ref name="common-atts"/>
<ref name="open-patterns"/>
</element>
<element name="interleave">
<ref name="common-atts"/>
<ref name="open-patterns"/>
</element>
<element name="choice">
<ref name="common-atts"/>
<ref name="open-patterns"/>
</element>
<element name="optional">
<ref name="common-atts"/>
<ref name="open-patterns"/>
</element>
<element name="zeroOrMore">
<ref name="common-atts"/>
<ref name="open-patterns"/>
</element>
<element name="oneOrMore">
<ref name="common-atts"/>
<ref name="open-patterns"/>
</element>
<element name="list">
<ref name="common-atts"/>
<ref name="open-patterns"/>
</element>
<element name="mixed">
<ref name="common-atts"/>
<ref name="open-patterns"/>
</element>
<element name="ref">
<attribute name="name">
<data type="NCName"/>
</attribute>
<ref name="common-atts"/>
<ref name="other"/>
</element>
<element name="parentRef">
<attribute name="name">
<data type="NCName"/>
</attribute>
<ref name="common-atts"/>
<ref name="other"/>
</element>
<element name="empty">
<ref name="common-atts"/>
<ref name="other"/>
</element>
<element name="text">
<ref name="common-atts"/>
<ref name="other"/>
</element>
<element name="value">
<optional>
<attribute name="type">
<data type="NCName"/>
</attribute>
</optional>
<ref name="common-atts"/>
<text/>
</element>
<element name="data">
<attribute name="type">
<data type="NCName"/>
</attribute>
<ref name="common-atts"/>
<interleave>
<ref name="other"/>
<group>
<zeroOrMore>
<element name="param">
<attribute name="name">
<data type="NCName"/>
</attribute>
<ref name="common-atts"/>
<text/>
</element>
</zeroOrMore>
<optional>
<element name="except">
<ref name="common-atts"/>
<ref name="open-patterns"/>
</element>
</optional>
</group>
</interleave>
</element>
<element name="notAllowed">
<ref name="common-atts"/>
<ref name="other"/>
</element>
<element name="externalRef">
<attribute name="href">
<data type="anyURI"/>
</attribute>
<ref name="common-atts"/>
<ref name="other"/>
</element>
<element name="grammar">
<ref name="common-atts"/>
<ref name="grammar-content"/>
</element>
</choice>
</define>
<define name="grammar-content">
<interleave>
<ref name="other"/>
<zeroOrMore>
<choice>
<ref name="start-element"/>
<ref name="define-element"/>
<element name="div">
<ref name="common-atts"/>
<ref name="grammar-content"/>
</element>
<element name="include">
<attribute name="href">
<data type="anyURI"/>
</attribute>
<ref name="common-atts"/>
<ref name="include-content"/>
</element>
</choice>
</zeroOrMore>
</interleave>
</define>
<define name="include-content">
<interleave>
<ref name="other"/>
<zeroOrMore>
<choice>
<ref name="start-element"/>
<ref name="define-element"/>
<element name="div">
<ref name="common-atts"/>
<ref name="include-content"/>
</element>
</choice>
</zeroOrMore>
</interleave>
</define>
<define name="start-element">
<element name="start">
<ref name="combine-att"/>
<ref name="common-atts"/>
<ref name="open-pattern"/>
</element>
</define>
<define name="define-element">
<element name="define">
<attribute name="name">
<data type="NCName"/>
</attribute>
<ref name="combine-att"/>
<ref name="common-atts"/>
<ref name="open-patterns"/>
</element>
</define>
<define name="combine-att">
<optional>
<attribute name="combine">
<choice>
<value>choice</value>
<value>interleave</value>
</choice>
</attribute>
</optional>
</define>
<define name="open-patterns">
<interleave>
<ref name="other"/>
<oneOrMore>
<ref name="pattern"/>
</oneOrMore>
</interleave>
</define>
<define name="open-pattern">
<interleave>
<ref name="other"/>
<ref name="pattern"/>
</interleave>
</define>
<define name="name-class">
<choice>
<element name="name">
<ref name="common-atts"/>
<data type="QName"/>
</element>
<element name="anyName">
<ref name="common-atts"/>
<ref name="except-name-class"/>
</element>
<element name="nsName">
<ref name="common-atts"/>
<ref name="except-name-class"/>
</element>
<element name="choice">
<ref name="common-atts"/>
<ref name="open-name-classes"/>
</element>
</choice>
</define>
<define name="except-name-class">
<interleave>
<ref name="other"/>
<optional>
<element name="except">
<ref name="open-name-classes"/>
</element>
</optional>
</interleave>
</define>
<define name="open-name-classes">
<interleave>
<ref name="other"/>
<oneOrMore>
<ref name="name-class"/>
</oneOrMore>
</interleave>
</define>
<define name="open-name-class">
<interleave>
<ref name="other"/>
<ref name="name-class"/>
</interleave>
</define>
<define name="common-atts">
<optional>
<attribute name="ns"/>
</optional>
<optional>
<attribute name="datatypeLibrary">
<data type="anyURI"/>
</attribute>
</optional>
<zeroOrMore>
<attribute>
<anyName>
<except>
<nsName/>
<nsName ns=""/>
</except>
</anyName>
</attribute>
</zeroOrMore>
</define>
<define name="other">
<zeroOrMore>
<element>
<anyName>
<except>
<nsName/>
</except>
</anyName>
<zeroOrMore>
<choice>
<attribute>
<anyName/>
</attribute>
<text/>
<ref name="any"/>
</choice>
</zeroOrMore>
</element>
</zeroOrMore>
</define>
<define name="any">
<element>
<anyName/>
<zeroOrMore>
<choice>
<attribute>
<anyName/>
</attribute>
<text/>
<ref name="any"/>
</choice>
</zeroOrMore>
</element>
</define>
</grammar>

View File

@@ -0,0 +1,48 @@
default namespace = "http://schemas.xmlsoap.org/ws/2005/05/identity"
datatypes xs = "http://www.w3.org/2001/XMLSchema"
namespace wst = "http://schemas.xmlsoap.org/ws/2005/02/trust"
element RoamingStore {
element RoamingInformationCard {
element InformationCardMetaData {
attribute xml:lang { text },
element InformationCardReference {
element CardId { text },
element CardVersion { text }
},
element CardName { text },
element CardImage {
attribute MimeType { text },
xs:base64Binary
},
element Issuer { xs:anyURI },
element TimeIssued { xs:dateTime },
element TimeExpires { xs:dateTime },
element SupportedTokenTypeList {
element wst:TokenType { xs:anyURI }+
},
element SupportedClaimTypeList {
element SupportedClaimType {
attribute Uri { xs:anyURI },
element DisplayTag { text },
element Description { text }
}+
},
element IsSelfIssued { xs:boolean },
element HashSalt { xs:base64Binary },
element TimeLastUpdated { xs:dateTime },
element IssuerId { text },
element IssuerName { text },
element BackgroundColor { xs:int }
},
element InformationCardPrivateData {
element MasterKey { xs:base64Binary },
element ClaimValueList {
element ClaimValue {
attribute Uri { xs:anyURI },
element Value { text }
}+
}
}
}+
}

View File

@@ -0,0 +1,56 @@
<grammar
xmlns="http://relaxng.org/ns/structure/1.0"
ns="http://go-mono.org/team.xsd">
<start>
<element name="contributors">
<optional>
<ref name="schema" />
</optional>
<oneOrMore>
<element name="contributor">
<zeroOrMore><element name="name">
<zeroOrMore><element name="first-name"><text/></element></zeroOrMore>
<zeroOrMore><element name="last-name"><text/></element></zeroOrMore>
</element></zeroOrMore>
<zeroOrMore><element name="e-mail"><text/></element></zeroOrMore>
<zeroOrMore><element name="image"><text/></element></zeroOrMore>
<zeroOrMore><element name="location"><text/></element></zeroOrMore>
<zeroOrMore><element name="organization"><text/></element></zeroOrMore>
<zeroOrMore><element name="description"><text/></element></zeroOrMore>
<zeroOrMore><element name="tasks">
<oneOrMore><element name="task">
<text/>
</element></oneOrMore>
</element></zeroOrMore>
</element>
</oneOrMore>
</element>
</start>
<define name="schema">
<element name="schema" ns="http://www.w3.org/2001/XMLSchema">
<ref name="anyAttribute" />
<ref name="anyElement"/>
</element>
</define>
<define name="anyElement">
<zeroOrMore>
<element>
<anyName/>
<ref name="anyAttribute" />
<zeroOrMore>
<text/>
<ref name="anyElement"/>
</zeroOrMore>
</element>
</zeroOrMore>
</define>
<define name="anyAttribute">
<zeroOrMore>
<attribute><anyName/></attribute>
</zeroOrMore>
</define>
</grammar>

File diff suppressed because it is too large Load Diff