Cannot create a valid instance from my schema

W

wooks

The schema below describes an interface to a form where the
appInterface type is an extension of an abstract type called interface
and it contains an appFrame element that is an extension of an empty
abstract complex type called frameInterface (the reason for that is so
that the system will recognise all frames by virtue of their being
derived from frameInterface type).

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:faster:defineApplication"
xmlns="urn:faster:defineApplication"
elementFormDefault="qualified">
<xsd:simpleType name="entityNameType">
<xsd:restriction base="xsd:NCName">
<!-- defines alphanumeric field that contains at least 1 alpha-->
<xsd:pattern value="\p{L}\w*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="interface" abstract="true">
<xsd:sequence>
<xsd:any namespace="##local" processContents="lax" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="appInterface">
<xsd:complexContent>
<xsd:extension base="interface">
<xsd:sequence>
<xsd:element ref="appFrame"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="frameInterface" abstract="true"/>
<xsd:complexType name="appFrame">
<xsd:complexContent>
<xsd:extension base="interface">
<xsd:sequence>
<xsd:element ref="name">
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="name" type="entityNameType"/>
<xsd:element name="appFrame" type="appFrame"/>
<xsd:element name="root" type="appInterface"/>
</xsd:schema>

I cannot understand why my instance keeps failing validation

<?xml version="1.0"?>
<root xmlns="urn:faster:defineApplication">
<labels name="Application" xmlns=""></labels>
<name>again</name>
</root>

I keep getting element content is invalid according to DTD/Schema

I am at my wits end with this so help will be gratefully appreciated
 
M

Martin Honnen

wooks said:
The schema below describes an interface to a form where the
appInterface type is an extension of an abstract type called interface
and it contains an appFrame element that is an extension of an empty
abstract complex type called frameInterface (the reason for that is so
that the system will recognise all frames by virtue of their being
derived from frameInterface type).

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:faster:defineApplication"
xmlns="urn:faster:defineApplication"
elementFormDefault="qualified">
<xsd:simpleType name="entityNameType">
<xsd:restriction base="xsd:NCName">
<!-- defines alphanumeric field that contains at least 1 alpha-->
<xsd:pattern value="\p{L}\w*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="interface" abstract="true">
<xsd:sequence>
<xsd:any namespace="##local" processContents="lax" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="appInterface">
<xsd:complexContent>
<xsd:extension base="interface">
<xsd:sequence>
<xsd:element ref="appFrame"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="frameInterface" abstract="true"/>
<xsd:complexType name="appFrame">
<xsd:complexContent>
<xsd:extension base="interface">
<xsd:sequence>
<xsd:element ref="name">
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="name" type="entityNameType"/>
<xsd:element name="appFrame" type="appFrame"/>
<xsd:element name="root" type="appInterface"/>
</xsd:schema>

I cannot understand why my instance keeps failing validation

<?xml version="1.0"?>
<root xmlns="urn:faster:defineApplication">
<labels name="Application" xmlns=""></labels>
<name>again</name>
</root>

I keep getting element content is invalid according to DTD/Schema

The following is a valid instance:

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="urn:faster:defineApplication"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:faster:defineApplication test2004081201Xsd.xml">
<labels name="Application" xmlns=""></labels>
<appFrame>
<whatever xmlns="">Kibology</whatever>
<name>again</name>
</appFrame>
</root>

you need to have an <appFrame> element and have that contain a sequence
of any element and a <name> element.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,053
Latest member
billing-software

Latest Threads

Top