Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: schema 2022 09 #441

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
feat: add new schema version
- Add viewContent element. This adds support for utilising common code
  across 2 or more tokenscript cards. Each card can reference viewContent
  to be included at runtime when rendering the token card.
- Add include element. This element is used by the TokenScript CLI at
  build time to inline view files (html/js/css) into the output TSML.
- Add urlFragment attribute to ts:view element: This allows using the
  url fragment query (document.location.hash) for routing within a
  TokenScript card. This allows using single page applications across
  multiple TS cards.
- Add url attribute to ts:view element: This allows loading the card
  view from a remote server rather than embedding in the TS.
  Can be used with caution by developers of XL TokenScripts.
- Add HTML5 schema (not 100% complete, no official xsd exists like XHTML1)
micwallace committed Sep 28, 2023
commit 30e2e04449c154724d3f5ce375eec50787c4a325
File renamed without changes.
4 changes: 2 additions & 2 deletions schema/data.xsd → schema/2020-06/data.xsd
Original file line number Diff line number Diff line change
@@ -6,15 +6,15 @@
xmlns="http://tokenscript.org/2020/06/tokenscript"
elementFormDefault="qualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="xml.xsd"/>
schemaLocation="../common/xml.xsd"/>
<xs:complexType mixed="true" name="variable">
<xs:attribute name="ref" type="xs:NCName"/>
<xs:attribute name="local-ref" type="xs:NCName"/>
</xs:complexType>
<!-- Importing XML namespace for xml:lang and xml:id -->
<xs:element name="data">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="bool" type="variable"/>
<xs:element name="uint8" type="variable"/>
<xs:element name="uint16" type="variable"/>
File renamed without changes.
12 changes: 5 additions & 7 deletions schema/tokenscript.xsd → schema/2020-06/tokenscript.xsd
Original file line number Diff line number Diff line change
@@ -10,17 +10,17 @@

<!-- Importing XML namespace for xml:lang and xml:id -->
<import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="xml.xsd"/>
schemaLocation="../common/xml.xsd"/>

<!-- Importing XML Signature namespace. Schema is from
http://www.w3.org/TR/2008/REC-xmldsig-core-20080610/xmldsig-core-schema.xsd
-->
<import namespace="http://www.w3.org/2000/09/xmldsig#"
schemaLocation="xmldsig-core-schema.xsd"/>
schemaLocation="../common/xmldsig-core-schema.xsd"/>

<!-- Importing XHTML namespace. use xhtml1-strict.xsd to get xhtml:Block -->
<import namespace="http://www.w3.org/1999/xhtml"
schemaLocation="xhtml1-strict.xsd"/>
schemaLocation="../common/xhtml1-strict.xsd"/>

<import namespace="urn:ietf:params:xml:ns:asnx"
schemaLocation="asnx.xsd"/>
@@ -52,7 +52,7 @@
</sequence>
<attribute name="custodian" type="boolean" default="false"/>
<attribute name="name" type="NCName" use="required"/>
<!-- commented out thanks to issue
<!-- commented out thanks to issue
<assert test="count(ts:attribute[string(@distinct) = 'true']) le 1"/>
<assert test="if(not(ts:origins)) then count(ts:attribute[string(@distinct) = 'true']) = 1 else true()"/>
-->
@@ -182,9 +182,7 @@
<element name="include" type="NCName"/>
<complexType name="view">
<sequence>
<element minOccurs="0" maxOccurs="unbounded" ref="xhtml:style"/>
<element minOccurs="0" maxOccurs="unbounded" ref="xhtml:script"/>
<element minOccurs="0" ref="xhtml:body"/>
<any namespace="http://www.w3.org/1999/xhtml" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute ref="xml:lang"/>
</complexType>
72 changes: 72 additions & 0 deletions schema/2022-09/asnx.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:ethereum="urn:ethereum:constantinople"
xmlns:asnx="urn:ietf:params:xml:ns:asnx"
targetNamespace="urn:ietf:params:xml:ns:asnx"
elementFormDefault="unqualified">

<import namespace="urn:ethereum:constantinople"
schemaLocation="ethereum.xsd"/>

<element name="module">
<complexType>
<sequence>
<element name="namedType" maxOccurs="unbounded" type="asnx:namedType"/>
</sequence>
<attribute name="name" type="NCName"/>
</complexType>
</element>

<complexType name="namedType">
<choice>
<element name="element" type="asnx:element"/>
<element name="type" type="asnx:type">
</element>
</choice>
<attribute name="name" type="NCName"/>
</complexType>

<complexType name="type">
<choice>
<element name="sequence" type="asnx:container"/>
<element name="enumerated" type="asnx:enumerated"/>
</choice>
</complexType>

<complexType name="enumerated">
<sequence>
<element name="enumeration" maxOccurs="unbounded">
<complexType>
<attribute name="name" type="NCName"/>
<attribute name="number" type="integer"/>
</complexType>
</element>
</sequence>
</complexType>

<complexType name="container">
<choice maxOccurs="unbounded">
<element name="element" type="asnx:element"/>
</choice>
</complexType>

<complexType name="element">
<sequence>
<element minOccurs="0" name="type" type="asnx:type"/>
</sequence>
<attribute name="name" type="NCName"/>
<attribute name="type">
<simpleType>
<restriction base="string">
<enumeration value="asnx:UTF8String"/>
<enumeration value="asnx:INTEGER"/>
<enumeration value="asnx:BOOLEAN"/>
<enumeration value="asnx:OCTET-STRING"/>
<enumeration value="asnx:UTCTime"/>
</restriction>
</simpleType>
</attribute>
<attribute ref="ethereum:type"/>
<attribute ref="ethereum:indexed"/>
</complexType>
</schema>
156 changes: 156 additions & 0 deletions schema/2022-09/data.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://tokenscript.org/2022/09/tokenscript"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
xmlns="http://tokenscript.org/2022/09/tokenscript"
elementFormDefault="qualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="../common/xml.xsd"/>
<xs:complexType mixed="true" name="variable">
<xs:attribute name="ref" type="xs:NCName"/>
<xs:attribute name="local-ref" type="xs:NCName"/>
</xs:complexType>
<!-- Importing XML namespace for xml:lang and xml:id -->
<xs:element name="data">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="bool" type="variable"/>
<xs:element name="uint8" type="variable"/>
<xs:element name="uint16" type="variable"/>
<xs:element name="uint24" type="variable"/>
<xs:element name="uint32" type="variable"/>
<xs:element name="uint40" type="variable"/>
<xs:element name="uint48" type="variable"/>
<xs:element name="uint56" type="variable"/>
<xs:element name="uint64" type="variable"/>
<xs:element name="uint72" type="variable"/>
<xs:element name="uint80" type="variable"/>
<xs:element name="uint88" type="variable"/>
<xs:element name="uint96" type="variable"/>
<xs:element name="uint104" type="variable"/>
<xs:element name="uint112" type="variable"/>
<xs:element name="uint120" type="variable"/>
<xs:element name="uint128" type="variable"/>
<xs:element name="uint136" type="variable"/>
<xs:element name="uint144" type="variable"/>
<xs:element name="uint152" type="variable"/>
<xs:element name="uint160" type="variable"/>
<xs:element name="uint168" type="variable"/>
<xs:element name="uint176" type="variable"/>
<xs:element name="uint184" type="variable"/>
<xs:element name="uint192" type="variable"/>
<xs:element name="uint200" type="variable"/>
<xs:element name="uint208" type="variable"/>
<xs:element name="uint216" type="variable"/>
<xs:element name="uint224" type="variable"/>
<xs:element name="uint232" type="variable"/>
<xs:element name="uint240" type="variable"/>
<xs:element name="uint248" type="variable"/>
<xs:element name="uint256" type="variable"/>
<xs:element name="int8" type="variable"/>
<xs:element name="int16" type="variable"/>
<xs:element name="int24" type="variable"/>
<xs:element name="int32" type="variable"/>
<xs:element name="int40" type="variable"/>
<xs:element name="int48" type="variable"/>
<xs:element name="int56" type="variable"/>
<xs:element name="int64" type="variable"/>
<xs:element name="int72" type="variable"/>
<xs:element name="int80" type="variable"/>
<xs:element name="int88" type="variable"/>
<xs:element name="int96" type="variable"/>
<xs:element name="int104" type="variable"/>
<xs:element name="int112" type="variable"/>
<xs:element name="int120" type="variable"/>
<xs:element name="int128" type="variable"/>
<xs:element name="int136" type="variable"/>
<xs:element name="int144" type="variable"/>
<xs:element name="int152" type="variable"/>
<xs:element name="int160" type="variable"/>
<xs:element name="int168" type="variable"/>
<xs:element name="int176" type="variable"/>
<xs:element name="int184" type="variable"/>
<xs:element name="int192" type="variable"/>
<xs:element name="int200" type="variable"/>
<xs:element name="int208" type="variable"/>
<xs:element name="int216" type="variable"/>
<xs:element name="int224" type="variable"/>
<xs:element name="int232" type="variable"/>
<xs:element name="int240" type="variable"/>
<xs:element name="int248" type="variable"/>
<xs:element name="int256" type="variable"/>
<xs:element name="string" type="variable"/>
<xs:element name="bytes" type="variable"/>
<xs:element name="byte" type="variable"/>
<xs:element name="bytes1" type="variable"/>
<xs:element name="bytes2" type="variable"/>
<xs:element name="bytes3" type="variable"/>
<xs:element name="bytes4" type="variable"/>
<xs:element name="bytes5" type="variable"/>
<xs:element name="bytes6" type="variable"/>
<xs:element name="bytes7" type="variable"/>
<xs:element name="bytes8" type="variable"/>
<xs:element name="bytes9" type="variable"/>
<xs:element name="bytes10" type="variable"/>
<xs:element name="bytes11" type="variable"/>
<xs:element name="bytes12" type="variable"/>
<xs:element name="bytes13" type="variable"/>
<xs:element name="bytes14" type="variable"/>
<xs:element name="bytes15" type="variable"/>
<xs:element name="bytes16" type="variable"/>
<xs:element name="bytes17" type="variable"/>
<xs:element name="bytes18" type="variable"/>
<xs:element name="bytes19" type="variable"/>
<xs:element name="bytes20" type="variable"/>
<xs:element name="bytes21" type="variable"/>
<xs:element name="bytes22" type="variable"/>
<xs:element name="bytes23" type="variable"/>
<xs:element name="bytes24" type="variable"/>
<xs:element name="bytes25" type="variable"/>
<xs:element name="bytes26" type="variable"/>
<xs:element name="bytes27" type="variable"/>
<xs:element name="bytes28" type="variable"/>
<xs:element name="bytes29" type="variable"/>
<xs:element name="bytes30" type="variable"/>
<xs:element name="bytes31" type="variable"/>
<xs:element name="bytes32" type="variable"/>
<xs:element name="address" type="variable"/>
<xs:element name="struct" type="variable"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:simpleType name="as">
<xs:restriction base="xs:NCName">
<xs:enumeration value="uint"/>
<xs:enumeration value="address"/>
<!-- int is not allowed here, because "as" is not for typing but for transforming -->
<xs:enumeration value="utf8"/>
<xs:enumeration value="e18"/>
<xs:enumeration value="e8"/>
<xs:enumeration value="e6"/>
<xs:enumeration value="e4"/>
<xs:enumeration value="e2"/>
<xs:enumeration value="bool"/>
<xs:enumeration value="bytes"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="mapping">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="option">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="value">
<xs:complexType mixed="true">
<xs:attribute ref="xml:lang"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="key" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
185 changes: 185 additions & 0 deletions schema/2022-09/ethereum.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ts="http://tokenscript.org/2022/09/tokenscript"
elementFormDefault="qualified"
xmlns="urn:ethereum:constantinople"
targetNamespace="urn:ethereum:constantinople">

<xs:import schemaLocation="tokenscript.xsd" namespace="http://tokenscript.org/2022/09/tokenscript"/>

<xs:simpleType name="data-type">
<xs:restriction base="xs:string">
<xs:enumeration value="bool"/>
<xs:enumeration value="uint"/>
<xs:enumeration value="uint8"/>
<xs:enumeration value="uint16"/>
<xs:enumeration value="uint24"/>
<xs:enumeration value="uint32"/>
<xs:enumeration value="uint40"/>
<xs:enumeration value="uint48"/>
<xs:enumeration value="uint56"/>
<xs:enumeration value="uint64"/>
<xs:enumeration value="uint72"/>
<xs:enumeration value="uint80"/>
<xs:enumeration value="uint88"/>
<xs:enumeration value="uint96"/>
<xs:enumeration value="uint104"/>
<xs:enumeration value="uint112"/>
<xs:enumeration value="uint120"/>
<xs:enumeration value="uint128"/>
<xs:enumeration value="uint136"/>
<xs:enumeration value="uint144"/>
<xs:enumeration value="uint152"/>
<xs:enumeration value="uint160"/>
<xs:enumeration value="uint168"/>
<xs:enumeration value="uint176"/>
<xs:enumeration value="uint184"/>
<xs:enumeration value="uint192"/>
<xs:enumeration value="uint200"/>
<xs:enumeration value="uint208"/>
<xs:enumeration value="uint216"/>
<xs:enumeration value="uint224"/>
<xs:enumeration value="uint232"/>
<xs:enumeration value="uint240"/>
<xs:enumeration value="uint248"/>
<xs:enumeration value="uint256"/>
<xs:enumeration value="int"/>
<xs:enumeration value="int8"/>
<xs:enumeration value="int16"/>
<xs:enumeration value="int24"/>
<xs:enumeration value="int32"/>
<xs:enumeration value="int40"/>
<xs:enumeration value="int48"/>
<xs:enumeration value="int56"/>
<xs:enumeration value="int64"/>
<xs:enumeration value="int72"/>
<xs:enumeration value="int80"/>
<xs:enumeration value="int88"/>
<xs:enumeration value="int96"/>
<xs:enumeration value="int104"/>
<xs:enumeration value="int112"/>
<xs:enumeration value="int120"/>
<xs:enumeration value="int128"/>
<xs:enumeration value="int136"/>
<xs:enumeration value="int144"/>
<xs:enumeration value="int152"/>
<xs:enumeration value="int160"/>
<xs:enumeration value="int168"/>
<xs:enumeration value="int176"/>
<xs:enumeration value="int184"/>
<xs:enumeration value="int192"/>
<xs:enumeration value="int200"/>
<xs:enumeration value="int208"/>
<xs:enumeration value="int216"/>
<xs:enumeration value="int224"/>
<xs:enumeration value="int232"/>
<xs:enumeration value="int240"/>
<xs:enumeration value="int248"/>
<xs:enumeration value="int256"/>
<xs:enumeration value="string"/>
<xs:enumeration value="bytes"/>
<xs:enumeration value="byte"/>
<xs:enumeration value="bytes1"/>
<xs:enumeration value="bytes2"/>
<xs:enumeration value="bytes3"/>
<xs:enumeration value="bytes4"/>
<xs:enumeration value="bytes5"/>
<xs:enumeration value="bytes6"/>
<xs:enumeration value="bytes7"/>
<xs:enumeration value="bytes8"/>
<xs:enumeration value="bytes9"/>
<xs:enumeration value="bytes10"/>
<xs:enumeration value="bytes11"/>
<xs:enumeration value="bytes12"/>
<xs:enumeration value="bytes13"/>
<xs:enumeration value="bytes14"/>
<xs:enumeration value="bytes15"/>
<xs:enumeration value="bytes16"/>
<xs:enumeration value="bytes17"/>
<xs:enumeration value="bytes18"/>
<xs:enumeration value="bytes19"/>
<xs:enumeration value="bytes20"/>
<xs:enumeration value="bytes21"/>
<xs:enumeration value="bytes22"/>
<xs:enumeration value="bytes23"/>
<xs:enumeration value="bytes24"/>
<xs:enumeration value="bytes25"/>
<xs:enumeration value="bytes26"/>
<xs:enumeration value="bytes27"/>
<xs:enumeration value="bytes28"/>
<xs:enumeration value="bytes29"/>
<xs:enumeration value="bytes30"/>
<xs:enumeration value="bytes31"/>
<xs:enumeration value="bytes32"/>
<xs:enumeration value="address"/>
</xs:restriction>
</xs:simpleType>
<xs:attribute name="type" type="data-type"/>
<xs:attribute name="indexed" type="xs:boolean" default="false"/>

<xs:complexType name="address" mixed="true">
<xs:attribute name="ref" type="xs:NCName"/>
</xs:complexType>

<xs:complexType name="call">
<xs:sequence>
<xs:element minOccurs="0" ref="ts:data"/>
<xs:element minOccurs="0" ref="ts:mapping"/>
</xs:sequence>
<xs:attribute name="as" type="ts:as"/>
<xs:attribute name="contract" type="xs:NCName"/>
<xs:attribute name="select" type="xs:NCName"/>
<xs:attribute name="type" type="xs:NCName"/>
</xs:complexType>

<xs:element name="call">
<xs:complexType>
<xs:complexContent>
<xs:extension base="call">
<xs:attribute name="function" type="xs:NCName" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>

<xs:element name="storage">
<xs:complexType>
<xs:attribute name="variable" type="xs:NCName" use="required"/>
<xs:attribute name="index" type="xs:integer" use="required"/>
<xs:attribute name="as" type="ts:as"/>
<xs:attribute name="contract" type="xs:NCName"/>
<xs:attribute name="select" type="xs:NCName"/>
<xs:attribute name="type" type="xs:NCName"/>
</xs:complexType>
</xs:element>


<xs:element name="transaction">
<xs:complexType>
<xs:complexContent>
<xs:extension base="call">
<xs:sequence>
<xs:element minOccurs="0" name="to" type="ts:address"/>
<xs:element minOccurs="0" name="value">
<xs:complexType mixed="true">
<xs:attribute name="ref" type="xs:NCName"/>
<xs:attribute name="local-ref" type="xs:NCName"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="function" type="xs:NCName" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>

<xs:element name="event">
<xs:complexType>
<!-- TODO: this should be whatever ASN.X allows as element name -->
<xs:attribute use="required" name="type" type="xs:NCName"/>
<xs:attribute use="required" name="contract" type="xs:NCName"/>
<xs:attribute name="filter" type="xs:string"/>
<xs:attribute name="select" type="xs:NCName"/>
</xs:complexType>
</xs:element>
</xs:schema>
44 changes: 44 additions & 0 deletions schema/2022-09/tokenscript.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ts:token xmlns:ts="http://tokenscript.org/2022/09/tokenscript"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xsi:schemaLocation="http://tokenscript.org/2022/09/tokenscript http://tokenscript.org/2022/09/tokenscript.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ethereum="urn:ethereum:constantinople"
name="Test2">
<ts:label>
<ts:plurals xml:lang="en">
<ts:string quantity="one">Test2 Token</ts:string>
<ts:string quantity="other">Test2 Tokens</ts:string>
</ts:plurals>
</ts:label>
<ts:contract interface="erc721" name="Token">
<ts:address network="4">0x431</ts:address>
</ts:contract>
<ts:origins>
<!-- Define the contract which holds the token that the user will use -->
<ts:ethereum contract="Token"/>
</ts:origins>
<ts:cards>

<ts:card type="action" name="Mint">
<!-- this action is of the model confirm-back.
window.onConfirm is called if user hit "confirm";
window.close() causes the back button to be pressed.
-->
<ts:label>
<ts:string xml:lang="en">Mint</ts:string>
</ts:label>
<ts:transaction>
<ethereum:transaction contract="Token" function="safeMint">
<ts:data>
</ts:data>
</ethereum:transaction>
</ts:transaction>
<ts:view xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<ts:include type="html" src="./dist/index.html"/>
</ts:view>
</ts:card>

</ts:cards>

</ts:token>
504 changes: 504 additions & 0 deletions schema/2022-09/tokenscript.xsd

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion schema/README.md
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ TokenScript schema serves to check if your TokenScript is with the correct synta

This namespace identifies the current schema:

http://tokenscript.org/2020/06/tokenscript
http://tokenscript.org/2022/09/tokenscript

When there is a minor change with the addition of new features and elements, we update the schema without invalidating the old TokenScripts that are already signed and put to use. The namespace identifier remains. This process is slow and normally taking months or years.

9 changes: 5 additions & 4 deletions schema/xhtml1-strict.xsd → schema/common/xhtml1-strict.xsd
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@
For further information, see: http://www.w3.org/TR/xhtml1

Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
All Rights Reserved.
All Rights Reserved.

The DTD version is identified by the PUBLIC and SYSTEM identifiers:

@@ -41,7 +41,7 @@
================ Character mnemonic entities =========================

XHTML entity sets are identified by the PUBLIC and SYSTEM identifiers:

PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"

@@ -131,7 +131,7 @@
<xs:documentation>
tabindex attribute specifies the position of the current element
in the tabbing order for the current document. This value must be
a number between 0 and 32767. User agents should ignore leading zeros.
a number between 0 and 32767. User agents should ignore leading zeros.
</xs:documentation>
</xs:annotation>
<xs:restriction base="Number">
@@ -816,7 +816,7 @@
<xs:element name="div">
<xs:annotation>
<xs:documentation>
generic language/style container
generic language/style container
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
@@ -1902,6 +1902,7 @@
<xs:extension base="button.content">
<xs:attributeGroup ref="attrs"/>
<xs:attributeGroup ref="focus"/>
<xs:attributeGroup ref="events"/>
<xs:attribute name="name"/>
<xs:attribute name="value"/>
<xs:attribute name="type" default="submit">
2,381 changes: 2,381 additions & 0 deletions schema/common/xhtml5.xsd

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion schema/xml.xsd → schema/common/xml.xsd
Original file line number Diff line number Diff line change
@@ -76,7 +76,7 @@
</xs:annotation>
<xs:simpleType>
<xs:union memberTypes="xs:language">
<xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value=""/>
</xs:restriction>
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE schema
PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd"
PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "https://www.w3.org/2001/XMLSchema.dtd"
[
<!ATTLIST schema
<!ATTLIST schema
xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#">
<!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
<!ENTITY % p ''>