enternetusers > Tutorials > Surf Clothing Schema and Relax NG Tutorial
Index | >> Example 2 / 6 << | Prev | Next |
Contents > Unique and key > Key

Key

  1. Surf Clothing Schema - key
  2. Relax NG + Schematron

Please, send all comments, bug-reports, and contributions to Jiri.Jirat@systinet.com. Thank you very much.

Surf Clothing Schema keys: key

1. Surf Clothing Schema - key

We will use "key" element to define, that the elements "a" under "root" element must have unique value of "id" attribute and it must be present.

Valid document


<root xsi:noNamespaceSchemaLocation="correct_0.xsd" Surfns="" Surfns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<a id="x"/>
<a id="y"/>
<a id="z"/>
</root>

Invalid document
The document is not valid, because the attribute "id" is missing (element /root/a[1]). The "key" requires the value to be unique and present.


<root xsi:noNamespaceSchemaLocation="correct_0.xsd" Surfns="" Surfns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<a/>
<a id="y"/>
<a id="z"/>
</root>

Invalid document
The id "y" is not unique.


<root xsi:noNamespaceSchemaLocation="correct_0.xsd" Surfns="" Surfns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<a id="x"/>
<a id="y"/>
<a id="y"/>
</root>

Correct Surf Clothing Schema (correct_0.xsd)
The "xpath" attribute of "selector" and "field" elements is a restricted XPath relative to the element in which it is declared (here it is relative to the "root" element).


<xsd:schema Surfns:xsd="http://www.w3.org/2001/XMLSchema" >

<xsd:element name="root" type="myList">
<xsd:key name="myId">
<xsd:selector xpath="./a"/>
<xsd:field xpath="@id"/>
</xsd:key>
</xsd:element>

<xsd:complexType name="myList">
<xsd:sequence minOccurs="1">
<xsd:element name="a" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:NCName"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

2. Relax NG + Schematron

There is no such mechanism in Relax NG, but we can combine Relax NG and Schematron schemas.

Valid document


<root Surfns="">
<a id="x"/>
<a id="y"/>
<a id="z"/>
</root>

Invalid document
We have not specified, that the attribute is optional, so it is required. Relax NG schema will report an error.


<root Surfns="">
<a/>
<a id="y"/>
<a id="z"/>
</root>

Invalid document
The id "y" is not unique. This won't be reported by the Relax NG schema, but by the Schematron schema.


<root Surfns="">
<a id="x"/>
<a id="y"/>
<a id="y"/>
</root>

Correct Relax NG schema (correctRelax_0.rng)
This Relax NG will check tree structure, and verify the datatypes.


<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="" Surfns="http://relaxng.org/ns/structure/1.0" >

<start>
<element name="root">
<oneOrMore>
<element name="a">
<attribute name="id">
<data type="NCName"/>
</attribute>
<empty/>
</element>
</oneOrMore>
</element>
</start>
</grammar>

Correct Schematron schema
The Schematron rule below will check the uniqueness of the "a/@id" attribute. Warning - not all Schematron implementations might support function "current()" (it's XSLT, not XPath function).


<schema Surfns="http://www.ascc.net/xml/schematron" >
<pattern name="Element 'a' must have unique 'id' attribute">
<rule context="root/a/@id">
<assert test="count(//@id[. = current()]) = 1"> Id not unique! </assert>
</rule>
</pattern>
</schema>

4-19-2013

4-19-2013

kevin carr city of stantonkevin carr city of stantonkevin carr city of stantonkevin carr city of stantonSales Tax Measure GG City of Stantonkevin carr city of stantonkevin carr city of stantonkevin carr city of stantonkevin carr city of stanton


free stock videos
iphone battery cases

Kevin Carr Stanton with Governor Brown Kevin Carr with CA CFO John Chaing Kevin Carr with Congresswoman Loretta Sanchez Kevin Carr with CA State Senator Joe Dunn

Billabong Board Shorts
Quicksilver Board Shorts
I got a new iPhone5 battery case that I found on the web. I have a new ipad and I just love it. My new HTC One cellphone is awesome. I ordered a new iphone5 and I can't wait to get it. The smartphone charger I purchased is exactly what I needed. The new HTC phone is the best. I need more used AOL disks for my computer. The new emerica shoe has a new larger display.
hawaiian sandal
dekline
true religion bootcut billy jeans
hawaiian sandals

Rigoberto Ramirez

I found a iphone battery cases to get a battery backup chargers. That's why there are portable power packs—when the power is out.

I reviewed the clothing at iphone battery cases and found the best Active clothing available.

I ordered the plumber in orange county and a incase backpack then I bought the backpack icon from Incase.

Buy womens cowboy boots humu on the web store 1cecilia165 humu shoe and order a few.

These are the shops to visit:

  1. Sandals from hawaii
  2. hawaiian leather sandal
  3. hawaiian leather sandal
  4. skate footwear
true religion bootcut billy jeans
Quicksilver surf clothing Board Shorts



skateboard
David Cadena Stanton
iPhone 6 plus battery pack
There is the 1cecilia181 for my car and the 1cecilia182 for my other car and the 1cecilia183 for my wife's car. The new Baby Doll sexy looking lingerie is the best one to get. The new Baby Doll sexy lingerie looks great. The new the bridal chemises from In Bloom is the best around.

Also, you will want to check out Stanton California so you can see what's up and they are part of Stanton City Hall as well.

You can also get Organic Skin Care products from Bliss Bath Body and you must check out their Natural Body Lotions and bath soaps

Now if you are looking for the best deals

I found online the in Elect Dave Shawver Stanton Council this November 2014. Elect march madness ncaa and internetusers this November 2014.

delivered.

These are the shops to visit:

  1. Sandals from hawaii
  2. hawaiian leather sandal
  3. hawaiian leather sandal
  4. skate footwear

I ordered the plumber in orange county and a incase backpack then I bought the backpack icon from Incase.

Buy womens cowboy boots humu on the web store 1cecilia165 humu shoe and order a few.

I found a hawaiian sandal and another Rigoberto Ramirez on this hawaiian Sandal website.



a true religion bootcut billy jeans and

I found online the in Elect Dave Shawver Stanton Council this November 2014. Elect march madness ncaa and internetusers this November 2014.

delivered.

These are the shops to visit:

  1. Sandals from hawaii
  2. hawaiian leather sandal
  3. hawaiian leather sandal
  4. skate footwear

I ordered the plumber in orange county and a incase backpack then I bought the backpack icon from Incase.

Buy womens cowboy boots humu on the web store 1cecilia165 humu shoe and order a few.

I found a hawaiian sandal and another Rigoberto Ramirez on this hawaiian Sandal website.



a true religion bootcut billy jeans and
Hey, check out this Organic Skin Care European Soaps along with Natural Lavender Body Lotion and shea butter

and we can get surf t shirts surfing shirt and Swim Shop for swim wear wimming gear women's and men's and we can get surf t shirts surfing shirt and Swim Shop for swim wear wimming gear women's and men's