Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

XSD XML Spy

257520Apr 24 2002
Hi,

I have a similar problem that Chetan Cudasama exposed in this forum.

In this case I've used explicitly the instructions given in the document "Building Server-Side XML Schema Validation" written in the otn.oracle.com web page.

As the user above explained, I've written a schema that XML Spy validates correctly, but when I try to validate this with the XSDParser class I receive the following exception:


<Line 1, Column 7837>: XSD-2015: (Error) Invalid facet 'pattern' in element 'simpleType'
<Line 1, Column 10528>: XSD-2014: (Error) Invalid method of derivation 'restriction'
<Line 1, Column 10439>: XSD-2026: (Error) Invalid attribute 'default' in element 'ape2'
<Line 1, Column 18671>: XSD-2015: (Error) Invalid facet 'pattern' in element 'simpleType'
<Line 1, Column 18609>: XSD-2209: (Error) Duplicated definition for: 'nomb'
oracle.xml.parser.schema.XSDException: Invalid facet 'pattern' in element 'simpleType'



The schema that I need to use is defined as shown below:


<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- edited with XML Spy v4.1 (http://www.xmlspy.com) by Joaquin (Bull) -->
<!--W3C Schema generated by XML Spy v3.5 NT (http://www.xmlspy.com)-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:simpleType name="nif">
<xsd:restriction base="xsd:string">
<xsd:minLength value="6"/>
<xsd:maxLength value="9"/>
<xsd:pattern value="\d{8}[T,R,W,A,G,M,Y,F,P,D,X,B,N,J,Z,S,Q,V,H,L,C,K,E,I]?"/>
<xsd:pattern value="[X]\d{8}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="acce">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="bloq">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="copo">
<xsd:restriction base="xsd:string">
<xsd:minLength value="5"/>
<xsd:maxLength value="5"/>
<xsd:pattern value="\d{5}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="hect">
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="9"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="kilo">
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="999"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="nume">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="5"/>
<xsd:minLength value="1"/>
<xsd:pattern value="\d{1,5}"/>
<xsd:pattern value="S/N"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="piso">
<xsd:restriction base="xsd:string">
<xsd:pattern value="B"/>
<xsd:pattern value="ENT"/>
<xsd:pattern value="\d{1,3}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="prta">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="4"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="acre">
<xsd:complexType>
<xsd:sequence>
<xsd:sequence id="acreProv" minOccurs="0">
<xsd:element name="acpr">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="2"/>
<xsd:maxLength value="2"/>
<xsd:enumeration value="PN"/>
<xsd:enumeration value="AC"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="fecha" type="xsd:date"/>
</xsd:sequence>
<xsd:element name="nuss" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="14"/>
<xsd:maxLength value="14"/>
<xsd:pattern value="\d{2}/\d{8}/\d{2}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="tibe" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="1"/>
<xsd:enumeration value="T"/>
<xsd:enumeration value="B"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:sequence>
<xsd:sequence>
<xsd:element name="finTip">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="finCod">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="modCod">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:maxInclusive value="99"/>
<xsd:minInclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:sequence minOccurs="0">
<xsd:element name="rasSit">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="9"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="rasReg">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="9"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:sequence>
<xsd:element name="nase" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="12"/>
<xsd:maxLength value="14"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="fecha" type="xsd:date"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="asig">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="cen">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="codi">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="99999"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="nomb" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="area" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="zona" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="clm">
<xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="0300000"/>
<xsd:maxInclusive value="4699999"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ccm">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="2"/>
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="fasg" type="xsd:date"/>
<xsd:element name="pro" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:sequence minOccurs="0">
<xsd:element name="nif" type="nif"/>
<xsd:element name="noap">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="75"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:sequence minOccurs="0">
<xsd:element name="codi">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:maxInclusive value="99"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="desc">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="50"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:element name="cpa" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="7"/>
<xsd:pattern value="\d{1,7}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="baja">
<xsd:complexType>
<xsd:sequence>
<xsd:sequence>
<xsd:element name="codi">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
<xsd:pattern value="\p{Lu}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="desc">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="50"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:element name="feba" type="xsd:date"/>
<xsd:element name="fede" type="xsd:date"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="expe">
<xsd:complexType>
<xsd:attribute name="numero" type="xsd:string"/>
<xsd:attribute name="mda" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="inci">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="tipo">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AVISO"/>
<xsd:enumeration value="GRAVE"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="codi" type="xsd:string"/>
<xsd:element name="desc" type="xsd:string"/>
<xsd:element name="url" type="xsd:anyURI" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="iden">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="nsip">
<xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:maxExclusive value="99999999"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="mos">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="mos_codi" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="3"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="nomb">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="20"/>
<xsd:pattern value="[A,E,I,O,U,Y,B,C,G,D,F,G,H,J,K,L,M,N,Q,P,Q,R,S,T,V,W,X,Z,\s,-]{1,20}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ape1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="25"/>
<xsd:pattern value="[A,E,I,O,U,Y,B,C,G,D,F,G,H,J,K,L,M,N,Q,P,Q,R,S,T,V,W,X,Z,\s,-]{1,25}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ape2" default=".">
<xsd:complexType>
<xsd:simpleContent>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A,E,I,O,U,Y,B,C,G,D,F,G,H,J,K,L,M,N,Q,P,Q,R,S,T,V,W,X,Z,\s,-]{1,25}"/>
<xsd:pattern value="."/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="nif" type="nif" minOccurs="0"/>
<xsd:element name="fena" type="xsd:date" minOccurs="0"/>
<xsd:element name="sexo">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="1"/>
<xsd:enumeration value="H"/>
<xsd:enumeration value="M"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="pana" type="pai"/>
<xsd:sequence minOccurs="0">
<xsd:element name="prna" type="prv" minOccurs="0"/>
<xsd:element name="lona" type="loc" minOccurs="0"/>
</xsd:sequence>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="loca">
<xsd:complexType>
<xsd:sequence>
<xsd:sequence>
<xsd:element name="dirRes">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="prv" type="prv"/>
<xsd:element name="loc" type="loc"/>
<xsd:element name="calle" type="cal"/>
<xsd:choice>
<xsd:sequence>
<xsd:element name="nume" type="nume"/>
<xsd:element name="acce" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="acce"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="bloq" type="bloq" minOccurs="0"/>
<xsd:element name="piso" type="piso" minOccurs="0"/>
<xsd:element name="prta" type="prta" minOccurs="0"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="kilo" type="kilo"/>
<xsd:element name="hect" type="hect" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
<xsd:element name="copo" type="copo" minOccurs="0"/>
<xsd:sequence minOccurs="0">
<xsd:element name="area" type="arzo"/>
<xsd:element name="zona" type="arzo"/>
</xsd:sequence>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="dirPos" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="prv" type="prv"/>
<xsd:element name="loc" type="loc"/>
<xsd:choice>
<xsd:sequence>
<xsd:element name="calle" type="cal"/>
<xsd:choice>
<xsd:sequence>
<xsd:element name="nume" type="nume"/>
<xsd:element name="acce" type="acce" minOccurs="0"/>
<xsd:element name="bloq" type="bloq" minOccurs="0"/>
<xsd:element name="piso" type="piso" minOccurs="0"/>
<xsd:element name="prta" type="prta" minOccurs="0"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="kilo" type="kilo"/>
<xsd:element name="hect" type="hect" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
<xsd:element name="copo" type="copo" minOccurs="0"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="apdo">
<xsd:complexType>
<xsd:attribute name="valor" type="xsd:decimal" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="copo" type="copo"/>
</xsd:sequence>
</xsd:choice>
<xsd:sequence minOccurs="0">
<xsd:element name="area" type="arzo"/>
<xsd:element name="zona" type="arzo"/>
</xsd:sequence>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:element name="tele" minOccurs="0" maxOccurs="2">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="9"/>
<xsd:maxLength value="9"/>
<xsd:pattern value="\d{9}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="tarj">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="sit">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="codi">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="A1"/>
<xsd:enumeration value="D0"/>
<xsd:enumeration value="D5"/>
<xsd:enumeration value="D6"/>
<xsd:enumeration value="D7"/>
<xsd:enumeration value="D8"/>
<xsd:enumeration value="E0"/>
<xsd:enumeration value="E1"/>
<xsd:enumeration value="E2"/>
<xsd:enumeration value="P0"/>
<xsd:enumeration value="P1"/>
<xsd:enumeration value="P2"/>
<xsd:enumeration value="P3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="fecha" type="xsd:date"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="tta">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="codi">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
<xsd:pattern value="[A-Z]{1,2}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="fecha" type="xsd:date" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="usu">
<xsd:sequence>
<xsd:element ref="iden"/>
<xsd:element ref="loca" minOccurs="0"/>
<xsd:element ref="acre" minOccurs="0"/>
<xsd:element ref="asig" minOccurs="0"/>
<xsd:element ref="tarj" minOccurs="0"/>
<xsd:element ref="expe" minOccurs="0"/>
<xsd:element ref="baja" minOccurs="0"/>
<xsd:element ref="inci" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="usuarios">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="usu" type="usu" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="arzo">
<xsd:sequence>
<xsd:element name="codi">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="99"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="nomb" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="50"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="prv">
<xsd:sequence>
<xsd:element name="codi">
<xsd:simpleType>
<xsd:restriction base="xsd:short">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="99"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="nomb" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="50"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="loc">
<xsd:sequence>
<xsd:element name="codi">
<xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="99999"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="nomb" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="pai">
<xsd:sequence>
<xsd:element name="codi">
<xsd:simpleType>
<xsd:restriction base="xsd:short">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="999"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="nomb" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="cal">
<xsd:choice>
<xsd:sequence>
<xsd:element name="tiv" type="xsd:string" minOccurs="0"/>
<xsd:element name="codi" type="xsd:short"/>
<xsd:element name="nomb" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="50"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="tiv" type="xsd:string" minOccurs="0"/>
<xsd:element name="nomb">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="50"/>
<xsd:pattern value="\p{Lu}{1,50}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
</xsd:schema>

Sorry about the length of this, but I need it so.
Does anybody know am I missing?
I will be grateful of any help about this.

Thank you.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on May 24 2002
Added on Apr 24 2002
3 comments
569 views