Skip to content
Permalink
Browse files

xlink.xsd fra w3.org

  • Loading branch information...
runeflobakk committed Apr 3, 2014
1 parent 8c7dc7c commit cbda57ec96e38d03576a12364bfaac980fa656b2
Showing with 276 additions and 56 deletions.
  1. +6 −10 xsd/README.md
  2. +270 −46 xsd/w3/xlink.xsd
@@ -175,18 +175,14 @@ curl -sL http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd \

#### xlink.xsd

Original: http://www.oasis-open.org/committees/ebxml-msg/schema/xlink.xsd
Original: http://www.w3.org/1999/xlink.xsd

Ingen endringer.

> Denne filen ligner ikke på noen av xlink.xsd-filene man finner på w3.org.
> Den refereres til fra
> http://docs.oasis-open.org/ebxml-bp/2.0.4/OS/signalSchema/documentation/ebxmlbp-v2.0.4-Document-os-SignalSchema-en.html.
Endringer:
```bash
curl -sL http://www.w3.org/1999/xlink.xsd \
| diff -uw --strip-trailing-cr - w3/xlink.xsd | vim -R -
```

> Mer offisielle xlink.xsd-filer finnes på http://www.w3.org/1999/xlink.xsd
> og http://www.w3.org/XML/2008/06/xlink.xsd. Kan disse brukes istedet? Dersom
> vi plutselig tar ibruk noe annet som forventer standard xlink.xsd, så får vi helt sikkert problemer
> med navnekollisjoner.


#### xml.xsd
@@ -1,46 +1,270 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xlink="http://www.w3.org/1999/xlink"
targetNamespace="http://www.w3.org/1999/xlink"
elementFormDefault="qualified"
attributeFormDefault="qualified">
<xsd:element name="root">
<xsd:annotation>
<xsd:documentation>Comment describing your root element</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:attribute name="type">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="simple"/>
<xsd:enumeration value="extended"/>
<xsd:enumeration value="locator"/>
<xsd:enumeration value="arc"/>
<xsd:enumeration value="resource"/>
<xsd:enumeration value="title"/>
<xsd:enumeration value="none"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="href" type="xsd:anyURI">
</xsd:attribute>
<xsd:attribute name="role" type="xsd:anyURI">
</xsd:attribute>
<xsd:attribute name="arcrole" type="xsd:anyURI">
</xsd:attribute>
<xsd:attribute name="title" type="xsd:string">
</xsd:attribute>
<xsd:attribute name="label" type="xsd:NMTOKEN">
</xsd:attribute>
<xsd:attribute name="show">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="new"/>
<xsd:enumeration value="replace"/>
<xsd:enumeration value="embed"/>
<xsd:enumeration value="other"/>
<xsd:enumeration value="none"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:schema>
<?xml version='1.0' encoding='UTF-8'?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink">

<xs:annotation>
<xs:documentation>This schema document provides attribute declarations and
attribute group, complex type and simple type definitions which can be used in
the construction of user schemas to define the structure of particular linking
constructs, e.g.
<![CDATA[
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xl="http://www.w3.org/1999/xlink">
<xs:import namespace="http://www.w3.org/1999/xlink"
location="http://www.w3.org/1999/xlink.xsd">
<xs:element name="mySimple">
<xs:complexType>
...
<xs:attributeGroup ref="xl:simpleAttrs"/>
...
</xs:complexType>
</xs:element>
...
</xs:schema>]]></xs:documentation>
</xs:annotation>

<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>

<xs:attribute name="type" type="xlink:typeType"/>

<xs:simpleType name="typeType">
<xs:restriction base="xs:token">
<xs:enumeration value="simple"/>
<xs:enumeration value="extended"/>
<xs:enumeration value="title"/>
<xs:enumeration value="resource"/>
<xs:enumeration value="locator"/>
<xs:enumeration value="arc"/>
</xs:restriction>
</xs:simpleType>

<xs:attribute name="href" type="xlink:hrefType"/>

<xs:simpleType name="hrefType">
<xs:restriction base="xs:anyURI"/>
</xs:simpleType>

<xs:attribute name="role" type="xlink:roleType"/>

<xs:simpleType name="roleType">
<xs:restriction base="xs:anyURI">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>

<xs:attribute name="arcrole" type="xlink:arcroleType"/>

<xs:simpleType name="arcroleType">
<xs:restriction base="xs:anyURI">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>

<xs:attribute name="title" type="xlink:titleAttrType"/>

<xs:simpleType name="titleAttrType">
<xs:restriction base="xs:string"/>
</xs:simpleType>

<xs:attribute name="show" type="xlink:showType"/>

<xs:simpleType name="showType">
<xs:restriction base="xs:token">
<xs:enumeration value="new"/>
<xs:enumeration value="replace"/>
<xs:enumeration value="embed"/>
<xs:enumeration value="other"/>
<xs:enumeration value="none"/>
</xs:restriction>
</xs:simpleType>

<xs:attribute name="actuate" type="xlink:actuateType"/>

<xs:simpleType name="actuateType">
<xs:restriction base="xs:token">
<xs:enumeration value="onLoad"/>
<xs:enumeration value="onRequest"/>
<xs:enumeration value="other"/>
<xs:enumeration value="none"/>
</xs:restriction>
</xs:simpleType>

<xs:attribute name="label" type="xlink:labelType"/>

<xs:simpleType name="labelType">
<xs:restriction base="xs:NCName"/>
</xs:simpleType>

<xs:attribute name="from" type="xlink:fromType"/>

<xs:simpleType name="fromType">
<xs:restriction base="xs:NCName"/>
</xs:simpleType>

<xs:attribute name="to" type="xlink:toType"/>

<xs:simpleType name="toType">
<xs:restriction base="xs:NCName"/>
</xs:simpleType>

<xs:attributeGroup name="simpleAttrs">
<xs:attribute ref="xlink:type" fixed="simple"/>
<xs:attribute ref="xlink:href"/>
<xs:attribute ref="xlink:role"/>
<xs:attribute ref="xlink:arcrole"/>
<xs:attribute ref="xlink:title"/>
<xs:attribute ref="xlink:show"/>
<xs:attribute ref="xlink:actuate"/>
</xs:attributeGroup>

<xs:group name="simpleModel">
<xs:sequence>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>

<xs:complexType mixed="true" name="simple">
<xs:annotation>
<xs:documentation>
Intended for use as the type of user-declared elements to make them
simple links.
</xs:documentation>
</xs:annotation>
<xs:group ref="xlink:simpleModel"/>
<xs:attributeGroup ref="xlink:simpleAttrs"/>
</xs:complexType>

<xs:attributeGroup name="extendedAttrs">
<xs:attribute ref="xlink:type" fixed="extended" use="required"/>
<xs:attribute ref="xlink:role"/>
<xs:attribute ref="xlink:title"/>
</xs:attributeGroup>

<xs:group name="extendedModel">
<xs:choice>
<xs:element ref="xlink:title"/>
<xs:element ref="xlink:resource"/>
<xs:element ref="xlink:locator"/>
<xs:element ref="xlink:arc"/>
</xs:choice>
</xs:group>

<xs:complexType name="extended">
<xs:annotation>
<xs:documentation>
Intended for use as the type of user-declared elements to make them
extended links.
Note that the elements referenced in the content model are all abstract.
The intention is that by simply declaring elements with these as their
substitutionGroup, all the right things will happen.
</xs:documentation>
</xs:annotation>
<xs:group ref="xlink:extendedModel" minOccurs="0" maxOccurs="unbounded"/>
<xs:attributeGroup ref="xlink:extendedAttrs"/>
</xs:complexType>

<xs:element name="title" type="xlink:titleEltType" abstract="true"/>

<xs:attributeGroup name="titleAttrs">
<xs:attribute ref="xlink:type" fixed="title" use="required"/>
<xs:attribute ref="xml:lang">
<xs:annotation>
<xs:documentation>
xml:lang is not required, but provides much of the
motivation for title elements in addition to attributes, and so
is provided here for convenience.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>

<xs:group name="titleModel">
<xs:sequence>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>

<xs:complexType mixed="true" name="titleEltType">
<xs:group ref="xlink:titleModel"/>
<xs:attributeGroup ref="xlink:titleAttrs"/>
</xs:complexType>

<xs:element name="resource" type="xlink:resourceType" abstract="true"/>

<xs:attributeGroup name="resourceAttrs">
<xs:attribute ref="xlink:type" fixed="resource" use="required"/>
<xs:attribute ref="xlink:role"/>
<xs:attribute ref="xlink:title"/>
<xs:attribute ref="xlink:label"/>
</xs:attributeGroup>

<xs:group name="resourceModel">
<xs:sequence>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>

<xs:complexType mixed="true" name="resourceType">
<xs:group ref="xlink:resourceModel"/>
<xs:attributeGroup ref="xlink:resourceAttrs"/>
</xs:complexType>

<xs:element name="locator" type="xlink:locatorType" abstract="true"/>

<xs:attributeGroup name="locatorAttrs">
<xs:attribute ref="xlink:type" fixed="locator" use="required"/>
<xs:attribute ref="xlink:href" use="required"/>
<xs:attribute ref="xlink:role"/>
<xs:attribute ref="xlink:title"/>
<xs:attribute ref="xlink:label">
<xs:annotation>
<xs:documentation>
label is not required, but locators have no particular
XLink function if they are not labeled.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>

<xs:group name="locatorModel">
<xs:sequence>
<xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>

<xs:complexType name="locatorType">
<xs:group ref="xlink:locatorModel"/>
<xs:attributeGroup ref="xlink:locatorAttrs"/>
</xs:complexType>

<xs:element name="arc" type="xlink:arcType" abstract="true"/>

<xs:attributeGroup name="arcAttrs">
<xs:attribute ref="xlink:type" fixed="arc" use="required"/>
<xs:attribute ref="xlink:arcrole"/>
<xs:attribute ref="xlink:title"/>
<xs:attribute ref="xlink:show"/>
<xs:attribute ref="xlink:actuate"/>
<xs:attribute ref="xlink:from"/>
<xs:attribute ref="xlink:to">
<xs:annotation>
<xs:documentation>
from and to have default behavior when values are missing
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>

<xs:group name="arcModel">
<xs:sequence>
<xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>

<xs:complexType name="arcType">
<xs:group ref="xlink:arcModel"/>
<xs:attributeGroup ref="xlink:arcAttrs"/>
</xs:complexType>

</xs:schema>

0 comments on commit cbda57e

Please sign in to comment.
You can’t perform that action at this time.