By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,905 Members | 894 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,905 IT Pros & Developers. It's quick & easy.

can't create schema for qualified attributes in element with default namespace

P: n/a
Hi,

I have a xml file like the one below

<?xml version="1.0" encoding="utf-8"?><e1
xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1" e1:att2="2"
e1:rest="345"/>

If I try to create a schema for it with Visual Studio, I get the error
"Failed to create a schema for this data file because:
Although this XML file is well formed, it contains structure that Data View
cannot display.

The 'http://tempuri.org/Source1.xsd:att1' atrribute is not declared. An
error occurred at , (7,8)"

However if I qualify the e1 element with e1 prefix it is happy.
I thought attributes namespace was independant of the element namespace.

I don't understand why I am getting this error.
Source1.xsd looks like this:

<?xml version="1.0" ?>
<xs:schema id="NewDataSet" targetNamespace="http://tempuri.org/Source1.xsd"
xmlns:mstns=http://tempuri.org/Source1.xsd
xmlns="http://tempuri.org/Source1.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="e1">
<xs:complexType>
<xs:attribute name="att1" form="qualified" type="xs:string" />
<xs:attribute name="att2" form="qualified" type="xs:string" />
<xs:attribute name="rest" form="qualified" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="en-GB"
msdata:EnforceConstraints="False">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="e1" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>

Any help much appreciated.

Thanks
Martin
Nov 12 '05 #1
Share this Question
Share on Google+
6 Replies


P: n/a
Hi Martin,

Can you be a bit more specific. What version of VS are you using and how
are you creating a schema for your XML file? Also it looks like you already
have a schema, so I'm not sure what you are trying to achieve.

--
Stan Kitsis
Program Manager, XML Technologies
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.
"Martin" <x@y.z> wrote in message
news:us*************@TK2MSFTNGP09.phx.gbl...
Hi,

I have a xml file like the one below

<?xml version="1.0" encoding="utf-8"?><e1
xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1" e1:att2="2"
e1:rest="345"/>

If I try to create a schema for it with Visual Studio, I get the error
"Failed to create a schema for this data file because:
Although this XML file is well formed, it contains structure that Data
View cannot display.

The 'http://tempuri.org/Source1.xsd:att1' atrribute is not declared. An
error occurred at , (7,8)"

However if I qualify the e1 element with e1 prefix it is happy.
I thought attributes namespace was independant of the element namespace.

I don't understand why I am getting this error.
Source1.xsd looks like this:

<?xml version="1.0" ?>
<xs:schema id="NewDataSet"
targetNamespace="http://tempuri.org/Source1.xsd"
xmlns:mstns=http://tempuri.org/Source1.xsd
xmlns="http://tempuri.org/Source1.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="e1">
<xs:complexType>
<xs:attribute name="att1" form="qualified" type="xs:string" />
<xs:attribute name="att2" form="qualified" type="xs:string" />
<xs:attribute name="rest" form="qualified" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="NewDataSet" msdata:IsDataSet="true"
msdata:Locale="en-GB" msdata:EnforceConstraints="False">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="e1" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>

Any help much appreciated.

Thanks
Martin

Nov 12 '05 #2

P: n/a
I'm using VS.Net 2003 enterprise edition.

I'm trying to regnerate the xsd I already have because I changed the xml
file on which the schema was based.

The original schema was based on unqualified attributes. I have since made
the attributes qualified.

I *think* I want to end up with a schema for this xml file
<?xml version="1.0" encoding="utf-8"?>

<e3:e1 xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1" e1:att2="2"
e1:rest="345"/>

where the attributes are in a different name space to the element (NB
element prefix is now e3), but on creating the schema for this doc, I am
simply told e3 is an undeclared namespace.

Ultimately I have 2 different xml files, shown below without name spaces:
source xml
<e1 att1="1" att2="2" rest="abc"/>

destination xml transformed from source
<e2 att1="1" att2="2" att3="a" att4="b" att5="c"/>

My xslt file looks like this:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl=http://www.w3.org/1999/XSL/Transform
xmlns:MyAttrs="urn:MyAttrs"
xmlns:e1="http://tempuri.org/Source1.xsd">
<xsl:template match="e1:e1">
<e2>
<xsl:attribute name="e1:att1"><xsl:value-of select="@att1"/></xsl:attribute>
<xsl:attribute name="e1:att2"><xsl:value-of select="@att2"/></xsl:attribute>
<xsl:for-each select="MyAttrs:getAttrs(@rest)">
<xsl:attribute name="{name()}"><xsl:value-of select="."/></xsl:attribute>
</xsl:for-each>
</e2>
</xsl:template>
</xsl:stylesheet>
I have used an xslt extension object to produce the attributes 3,4,5, and
the resulting xml file includes the namespace of the xslt extension object.

I want to use namespaces correctly, and thought the element namespace was
distinct from the attribute namespace.

Can you help me further?
Thanks
Martin

"Stan Kitsis [MSFT]" <sk***@microsoft.com> wrote in message
news:41********@news.microsoft.com...
Hi Martin,

Can you be a bit more specific. What version of VS are you using and how
are you creating a schema for your XML file? Also it looks like you
already have a schema, so I'm not sure what you are trying to achieve.

--
Stan Kitsis
Program Manager, XML Technologies
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no
rights.
"Martin" <x@y.z> wrote in message
news:us*************@TK2MSFTNGP09.phx.gbl...
Hi,

I have a xml file like the one below

<?xml version="1.0" encoding="utf-8"?><e1
xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1" e1:att2="2"
e1:rest="345"/>

If I try to create a schema for it with Visual Studio, I get the error
"Failed to create a schema for this data file because:
Although this XML file is well formed, it contains structure that Data
View cannot display.

The 'http://tempuri.org/Source1.xsd:att1' atrribute is not declared. An
error occurred at , (7,8)"

However if I qualify the e1 element with e1 prefix it is happy.
I thought attributes namespace was independant of the element namespace.

I don't understand why I am getting this error.
Source1.xsd looks like this:

<?xml version="1.0" ?>
<xs:schema id="NewDataSet"
targetNamespace="http://tempuri.org/Source1.xsd"
xmlns:mstns=http://tempuri.org/Source1.xsd
xmlns="http://tempuri.org/Source1.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="e1">
<xs:complexType>
<xs:attribute name="att1" form="qualified" type="xs:string" />
<xs:attribute name="att2" form="qualified" type="xs:string" />
<xs:attribute name="rest" form="qualified" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="NewDataSet" msdata:IsDataSet="true"
msdata:Locale="en-GB" msdata:EnforceConstraints="False">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="e1" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>

Any help much appreciated.

Thanks
Martin


Nov 12 '05 #3

P: n/a
Hi Martin,

First, in your XML file you are using namespace prefix e3 without defining
it. You need to fix that:

<?xml version="1.0" encoding="utf-8"?>

<e3:e1 xmlns:e1="http://tempuri.org/Source1.xsd"

xmlns:e3="http://tempuri.org/Source3.xsd"

e1:att1="1" e1:att2="2"

e1:rest="345"/>
When generating a schema for this xml, you'll end up with two files (one for
each namespace):

<!-- e1 -->

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:tns="http://tempuri.org/Source1.xsd"

attributeFormDefault="unqualified"

elementFormDefault="qualified"

targetNamespace="http://tempuri.org/Source1.xsd"

xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:attribute name="att1" type="xs:integer" />

<xs:attribute name="att2" type="xs:integer" />

<xs:attribute name="rest" type="xs:integer" />

</xs:schema>
<!-- e3 -->

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:e3="http://tempuri.org/Source3.xsd"
xmlns:e1="http://tempuri.org/Source1.xsd" attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://tempuri.org/Source3.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:import namespace="http://tempuri.org/Source1.xsd" />

<xs:element name="e1">

<xs:complexType>

<xs:attribute ref="e1:att1" use="required" />

<xs:attribute ref="e1:att2" use="required" />

<xs:attribute ref="e1:rest" use="required" />

</xs:complexType>

</xs:element>

</xs:schema>
--
Stan Kitsis
Program Manager, XML Technologies
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
"Martin" <x@y.z> wrote in message
news:u7**************@tk2msftngp13.phx.gbl...
I'm using VS.Net 2003 enterprise edition.

I'm trying to regnerate the xsd I already have because I changed the xml
file on which the schema was based.

The original schema was based on unqualified attributes. I have since
made the attributes qualified.

I *think* I want to end up with a schema for this xml file
<?xml version="1.0" encoding="utf-8"?>

<e3:e1 xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1" e1:att2="2"
e1:rest="345"/>

where the attributes are in a different name space to the element (NB
element prefix is now e3), but on creating the schema for this doc, I am
simply told e3 is an undeclared namespace.

Ultimately I have 2 different xml files, shown below without name spaces:
source xml
<e1 att1="1" att2="2" rest="abc"/>

destination xml transformed from source
<e2 att1="1" att2="2" att3="a" att4="b" att5="c"/>

My xslt file looks like this:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl=http://www.w3.org/1999/XSL/Transform
xmlns:MyAttrs="urn:MyAttrs"
xmlns:e1="http://tempuri.org/Source1.xsd">
<xsl:template match="e1:e1">
<e2>
<xsl:attribute name="e1:att1"><xsl:value-of
select="@att1"/></xsl:attribute>
<xsl:attribute name="e1:att2"><xsl:value-of
select="@att2"/></xsl:attribute>
<xsl:for-each select="MyAttrs:getAttrs(@rest)">
<xsl:attribute name="{name()}"><xsl:value-of select="."/></xsl:attribute>
</xsl:for-each>
</e2>
</xsl:template>
</xsl:stylesheet>
I have used an xslt extension object to produce the attributes 3,4,5, and
the resulting xml file includes the namespace of the xslt extension
object.

I want to use namespaces correctly, and thought the element namespace was
distinct from the attribute namespace.

Can you help me further?
Thanks
Martin

"Stan Kitsis [MSFT]" <sk***@microsoft.com> wrote in message
news:41********@news.microsoft.com...
Hi Martin,

Can you be a bit more specific. What version of VS are you using and how
are you creating a schema for your XML file? Also it looks like you
already have a schema, so I'm not sure what you are trying to achieve.

--
Stan Kitsis
Program Manager, XML Technologies
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no
rights.
"Martin" <x@y.z> wrote in message
news:us*************@TK2MSFTNGP09.phx.gbl...
Hi,

I have a xml file like the one below

<?xml version="1.0" encoding="utf-8"?><e1
xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1" e1:att2="2"
e1:rest="345"/>

If I try to create a schema for it with Visual Studio, I get the error
"Failed to create a schema for this data file because:
Although this XML file is well formed, it contains structure that Data
View cannot display.

The 'http://tempuri.org/Source1.xsd:att1' atrribute is not declared. An
error occurred at , (7,8)"

However if I qualify the e1 element with e1 prefix it is happy.
I thought attributes namespace was independant of the element namespace.

I don't understand why I am getting this error.
Source1.xsd looks like this:

<?xml version="1.0" ?>
<xs:schema id="NewDataSet"
targetNamespace="http://tempuri.org/Source1.xsd"
xmlns:mstns=http://tempuri.org/Source1.xsd
xmlns="http://tempuri.org/Source1.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="e1">
<xs:complexType>
<xs:attribute name="att1" form="qualified" type="xs:string" />
<xs:attribute name="att2" form="qualified" type="xs:string" />
<xs:attribute name="rest" form="qualified" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="NewDataSet" msdata:IsDataSet="true"
msdata:Locale="en-GB" msdata:EnforceConstraints="False">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="e1" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>

Any help much appreciated.

Thanks
Martin



Nov 12 '05 #4

P: n/a
Hi Stan,

I was hoping the schema for namespace e3 could be generated for me by
VS.Net.

Are you saying if I provide the xmlns uri it will then generate the xsd for
me?

Am I flogging a dead horse. Do I have to geneate the xsds manually?
Thanks again
Martin

"Stan Kitsis [MSFT]" <sk***@microsoft.com> wrote in message
news:41********@news.microsoft.com...
Hi Martin,

First, in your XML file you are using namespace prefix e3 without defining
it. You need to fix that:

<?xml version="1.0" encoding="utf-8"?>

<e3:e1 xmlns:e1="http://tempuri.org/Source1.xsd"

xmlns:e3="http://tempuri.org/Source3.xsd"

e1:att1="1" e1:att2="2"

e1:rest="345"/>
When generating a schema for this xml, you'll end up with two files (one
for each namespace):

<!-- e1 -->

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:tns="http://tempuri.org/Source1.xsd"

attributeFormDefault="unqualified"

elementFormDefault="qualified"

targetNamespace="http://tempuri.org/Source1.xsd"

xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:attribute name="att1" type="xs:integer" />

<xs:attribute name="att2" type="xs:integer" />

<xs:attribute name="rest" type="xs:integer" />

</xs:schema>
<!-- e3 -->

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:e3="http://tempuri.org/Source3.xsd"
xmlns:e1="http://tempuri.org/Source1.xsd"
attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://tempuri.org/Source3.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:import namespace="http://tempuri.org/Source1.xsd" />

<xs:element name="e1">

<xs:complexType>

<xs:attribute ref="e1:att1" use="required" />

<xs:attribute ref="e1:att2" use="required" />

<xs:attribute ref="e1:rest" use="required" />

</xs:complexType>

</xs:element>

</xs:schema>
--
Stan Kitsis
Program Manager, XML Technologies
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no
rights. Use of included script samples are subject to the terms specified
at http://www.microsoft.com/info/cpyright.htm
"Martin" <x@y.z> wrote in message
news:u7**************@tk2msftngp13.phx.gbl...
I'm using VS.Net 2003 enterprise edition.

I'm trying to regnerate the xsd I already have because I changed the xml
file on which the schema was based.

The original schema was based on unqualified attributes. I have since
made the attributes qualified.

I *think* I want to end up with a schema for this xml file
<?xml version="1.0" encoding="utf-8"?>

<e3:e1 xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1" e1:att2="2"
e1:rest="345"/>

where the attributes are in a different name space to the element (NB
element prefix is now e3), but on creating the schema for this doc, I am
simply told e3 is an undeclared namespace.

Ultimately I have 2 different xml files, shown below without name spaces:
source xml
<e1 att1="1" att2="2" rest="abc"/>

destination xml transformed from source
<e2 att1="1" att2="2" att3="a" att4="b" att5="c"/>

My xslt file looks like this:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl=http://www.w3.org/1999/XSL/Transform
xmlns:MyAttrs="urn:MyAttrs"
xmlns:e1="http://tempuri.org/Source1.xsd">
<xsl:template match="e1:e1">
<e2>
<xsl:attribute name="e1:att1"><xsl:value-of
select="@att1"/></xsl:attribute>
<xsl:attribute name="e1:att2"><xsl:value-of
select="@att2"/></xsl:attribute>
<xsl:for-each select="MyAttrs:getAttrs(@rest)">
<xsl:attribute name="{name()}"><xsl:value-of select="."/></xsl:attribute>
</xsl:for-each>
</e2>
</xsl:template>
</xsl:stylesheet>
I have used an xslt extension object to produce the attributes 3,4,5, and
the resulting xml file includes the namespace of the xslt extension
object.

I want to use namespaces correctly, and thought the element namespace was
distinct from the attribute namespace.

Can you help me further?
Thanks
Martin

"Stan Kitsis [MSFT]" <sk***@microsoft.com> wrote in message
news:41********@news.microsoft.com...
Hi Martin,

Can you be a bit more specific. What version of VS are you using and
how are you creating a schema for your XML file? Also it looks like you
already have a schema, so I'm not sure what you are trying to achieve.

--
Stan Kitsis
Program Manager, XML Technologies
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no
rights.
"Martin" <x@y.z> wrote in message
news:us*************@TK2MSFTNGP09.phx.gbl...
Hi,

I have a xml file like the one below

<?xml version="1.0" encoding="utf-8"?><e1
xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1" e1:att2="2"
e1:rest="345"/>

If I try to create a schema for it with Visual Studio, I get the error
"Failed to create a schema for this data file because:
Although this XML file is well formed, it contains structure that Data
View cannot display.

The 'http://tempuri.org/Source1.xsd:att1' atrribute is not declared. An
error occurred at , (7,8)"

However if I qualify the e1 element with e1 prefix it is happy.
I thought attributes namespace was independant of the element
namespace.

I don't understand why I am getting this error.
Source1.xsd looks like this:

<?xml version="1.0" ?>
<xs:schema id="NewDataSet"
targetNamespace="http://tempuri.org/Source1.xsd"
xmlns:mstns=http://tempuri.org/Source1.xsd
xmlns="http://tempuri.org/Source1.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="e1">
<xs:complexType>
<xs:attribute name="att1" form="qualified" type="xs:string" />
<xs:attribute name="att2" form="qualified" type="xs:string" />
<xs:attribute name="rest" form="qualified" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="NewDataSet" msdata:IsDataSet="true"
msdata:Locale="en-GB" msdata:EnforceConstraints="False">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="e1" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>

Any help much appreciated.

Thanks
Martin



Nov 12 '05 #5

P: n/a
Martin,

I don't think you can have the files generated in VS2003. However,
VS2005 (in beta now) will generate both files for you.

Stan

On Tue, 25 Jan 2005 23:00:03 -0000, "Martin" <x@y.z> wrote:
Hi Stan,

I was hoping the schema for namespace e3 could be generated for me by
VS.Net.

Are you saying if I provide the xmlns uri it will then generate the xsd for
me?

Am I flogging a dead horse. Do I have to geneate the xsds manually?
Thanks again
Martin

"Stan Kitsis [MSFT]" <sk***@microsoft.com> wrote in message
news:41********@news.microsoft.com...
Hi Martin,

First, in your XML file you are using namespace prefix e3 without defining
it. You need to fix that:

<?xml version="1.0" encoding="utf-8"?>

<e3:e1 xmlns:e1="http://tempuri.org/Source1.xsd"

xmlns:e3="http://tempuri.org/Source3.xsd"

e1:att1="1" e1:att2="2"

e1:rest="345"/>
When generating a schema for this xml, you'll end up with two files (one
for each namespace):

<!-- e1 -->

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:tns="http://tempuri.org/Source1.xsd"

attributeFormDefault="unqualified"

elementFormDefault="qualified"

targetNamespace="http://tempuri.org/Source1.xsd"

xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:attribute name="att1" type="xs:integer" />

<xs:attribute name="att2" type="xs:integer" />

<xs:attribute name="rest" type="xs:integer" />

</xs:schema>
<!-- e3 -->

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:e3="http://tempuri.org/Source3.xsd"
xmlns:e1="http://tempuri.org/Source1.xsd"
attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://tempuri.org/Source3.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:import namespace="http://tempuri.org/Source1.xsd" />

<xs:element name="e1">

<xs:complexType>

<xs:attribute ref="e1:att1" use="required" />

<xs:attribute ref="e1:att2" use="required" />

<xs:attribute ref="e1:rest" use="required" />

</xs:complexType>

</xs:element>

</xs:schema>
--
Stan Kitsis
Program Manager, XML Technologies
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no
rights. Use of included script samples are subject to the terms specified
at http://www.microsoft.com/info/cpyright.htm
"Martin" <x@y.z> wrote in message
news:u7**************@tk2msftngp13.phx.gbl...
I'm using VS.Net 2003 enterprise edition.

I'm trying to regnerate the xsd I already have because I changed the xml
file on which the schema was based.

The original schema was based on unqualified attributes. I have since
made the attributes qualified.

I *think* I want to end up with a schema for this xml file
<?xml version="1.0" encoding="utf-8"?>

<e3:e1 xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1" e1:att2="2"
e1:rest="345"/>

where the attributes are in a different name space to the element (NB
element prefix is now e3), but on creating the schema for this doc, I am
simply told e3 is an undeclared namespace.

Ultimately I have 2 different xml files, shown below without name spaces:
source xml
<e1 att1="1" att2="2" rest="abc"/>

destination xml transformed from source
<e2 att1="1" att2="2" att3="a" att4="b" att5="c"/>

My xslt file looks like this:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl=http://www.w3.org/1999/XSL/Transform
xmlns:MyAttrs="urn:MyAttrs"
xmlns:e1="http://tempuri.org/Source1.xsd">
<xsl:template match="e1:e1">
<e2>
<xsl:attribute name="e1:att1"><xsl:value-of
select="@att1"/></xsl:attribute>
<xsl:attribute name="e1:att2"><xsl:value-of
select="@att2"/></xsl:attribute>
<xsl:for-each select="MyAttrs:getAttrs(@rest)">
<xsl:attribute name="{name()}"><xsl:value-of select="."/></xsl:attribute>
</xsl:for-each>
</e2>
</xsl:template>
</xsl:stylesheet>
I have used an xslt extension object to produce the attributes 3,4,5, and
the resulting xml file includes the namespace of the xslt extension
object.

I want to use namespaces correctly, and thought the element namespace was
distinct from the attribute namespace.

Can you help me further?
Thanks
Martin

"Stan Kitsis [MSFT]" <sk***@microsoft.com> wrote in message
news:41********@news.microsoft.com...
Hi Martin,

Can you be a bit more specific. What version of VS are you using and
how are you creating a schema for your XML file? Also it looks like you
already have a schema, so I'm not sure what you are trying to achieve.

--
Stan Kitsis
Program Manager, XML Technologies
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no
rights.
"Martin" <x@y.z> wrote in message
news:us*************@TK2MSFTNGP09.phx.gbl...
> Hi,
>
> I have a xml file like the one below
>
> <?xml version="1.0" encoding="utf-8"?><e1
> xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1" e1:att2="2"
> e1:rest="345"/>
>
> If I try to create a schema for it with Visual Studio, I get the error
> "Failed to create a schema for this data file because:
> Although this XML file is well formed, it contains structure that Data
> View cannot display.
>
> The 'http://tempuri.org/Source1.xsd:att1' atrribute is not declared. An
> error occurred at , (7,8)"
>
> However if I qualify the e1 element with e1 prefix it is happy.
> I thought attributes namespace was independant of the element
> namespace.
>
> I don't understand why I am getting this error.
> Source1.xsd looks like this:
>
> <?xml version="1.0" ?>
> <xs:schema id="NewDataSet"
> targetNamespace="http://tempuri.org/Source1.xsd"
> xmlns:mstns=http://tempuri.org/Source1.xsd
> xmlns="http://tempuri.org/Source1.xsd"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
> attributeFormDefault="qualified" elementFormDefault="qualified">
> <xs:element name="e1">
> <xs:complexType>
> <xs:attribute name="att1" form="qualified" type="xs:string" />
> <xs:attribute name="att2" form="qualified" type="xs:string" />
> <xs:attribute name="rest" form="qualified" type="xs:string" />
> </xs:complexType>
> </xs:element>
> <xs:element name="NewDataSet" msdata:IsDataSet="true"
> msdata:Locale="en-GB" msdata:EnforceConstraints="False">
> <xs:complexType>
> <xs:choice maxOccurs="unbounded">
> <xs:element ref="e1" />
> </xs:choice>
> </xs:complexType>
> </xs:element>
> </xs:schema>
>
> Any help much appreciated.
>
> Thanks
> Martin
>
>



Nov 12 '05 #6

P: n/a
VS.Net 2003 can generate xsds when no namespaces are used in the sample xml,
but I guess I'll have to do namespaced xsd myself.

Thanks for the answers
Martin

"Stan Kitsis" <sk*****@umich.edu> wrote in message
news:ok********************************@4ax.com...
Martin,

I don't think you can have the files generated in VS2003. However,
VS2005 (in beta now) will generate both files for you.

Stan

On Tue, 25 Jan 2005 23:00:03 -0000, "Martin" <x@y.z> wrote:
Hi Stan,

I was hoping the schema for namespace e3 could be generated for me by
VS.Net.

Are you saying if I provide the xmlns uri it will then generate the xsd
for
me?

Am I flogging a dead horse. Do I have to geneate the xsds manually?
Thanks again
Martin

"Stan Kitsis [MSFT]" <sk***@microsoft.com> wrote in message
news:41********@news.microsoft.com...
Hi Martin,

First, in your XML file you are using namespace prefix e3 without
defining
it. You need to fix that:

<?xml version="1.0" encoding="utf-8"?>

<e3:e1 xmlns:e1="http://tempuri.org/Source1.xsd"

xmlns:e3="http://tempuri.org/Source3.xsd"

e1:att1="1" e1:att2="2"

e1:rest="345"/>
When generating a schema for this xml, you'll end up with two files (one
for each namespace):

<!-- e1 -->

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:tns="http://tempuri.org/Source1.xsd"

attributeFormDefault="unqualified"

elementFormDefault="qualified"

targetNamespace="http://tempuri.org/Source1.xsd"

xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:attribute name="att1" type="xs:integer" />

<xs:attribute name="att2" type="xs:integer" />

<xs:attribute name="rest" type="xs:integer" />

</xs:schema>
<!-- e3 -->

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:e3="http://tempuri.org/Source3.xsd"
xmlns:e1="http://tempuri.org/Source1.xsd"
attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://tempuri.org/Source3.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:import namespace="http://tempuri.org/Source1.xsd" />

<xs:element name="e1">

<xs:complexType>

<xs:attribute ref="e1:att1" use="required" />

<xs:attribute ref="e1:att2" use="required" />

<xs:attribute ref="e1:rest" use="required" />

</xs:complexType>

</xs:element>

</xs:schema>
--
Stan Kitsis
Program Manager, XML Technologies
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no
rights. Use of included script samples are subject to the terms
specified
at http://www.microsoft.com/info/cpyright.htm
"Martin" <x@y.z> wrote in message
news:u7**************@tk2msftngp13.phx.gbl...
I'm using VS.Net 2003 enterprise edition.

I'm trying to regnerate the xsd I already have because I changed the
xml
file on which the schema was based.

The original schema was based on unqualified attributes. I have since
made the attributes qualified.

I *think* I want to end up with a schema for this xml file
<?xml version="1.0" encoding="utf-8"?>

<e3:e1 xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1"
e1:att2="2"
e1:rest="345"/>

where the attributes are in a different name space to the element (NB
element prefix is now e3), but on creating the schema for this doc, I
am
simply told e3 is an undeclared namespace.

Ultimately I have 2 different xml files, shown below without name
spaces:
source xml
<e1 att1="1" att2="2" rest="abc"/>

destination xml transformed from source
<e2 att1="1" att2="2" att3="a" att4="b" att5="c"/>

My xslt file looks like this:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl=http://www.w3.org/1999/XSL/Transform
xmlns:MyAttrs="urn:MyAttrs"
xmlns:e1="http://tempuri.org/Source1.xsd">
<xsl:template match="e1:e1">
<e2>
<xsl:attribute name="e1:att1"><xsl:value-of
select="@att1"/></xsl:attribute>
<xsl:attribute name="e1:att2"><xsl:value-of
select="@att2"/></xsl:attribute>
<xsl:for-each select="MyAttrs:getAttrs(@rest)">
<xsl:attribute name="{name()}"><xsl:value-of
select="."/></xsl:attribute>
</xsl:for-each>
</e2>
</xsl:template>
</xsl:stylesheet>
I have used an xslt extension object to produce the attributes 3,4,5,
and
the resulting xml file includes the namespace of the xslt extension
object.

I want to use namespaces correctly, and thought the element namespace
was
distinct from the attribute namespace.

Can you help me further?
Thanks
Martin

"Stan Kitsis [MSFT]" <sk***@microsoft.com> wrote in message
news:41********@news.microsoft.com...
> Hi Martin,
>
> Can you be a bit more specific. What version of VS are you using and
> how are you creating a schema for your XML file? Also it looks like
> you
> already have a schema, so I'm not sure what you are trying to achieve.
>
> --
> Stan Kitsis
> Program Manager, XML Technologies
> Microsoft Corporation
>
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
>
>
> "Martin" <x@y.z> wrote in message
> news:us*************@TK2MSFTNGP09.phx.gbl...
>> Hi,
>>
>> I have a xml file like the one below
>>
>> <?xml version="1.0" encoding="utf-8"?><e1
>> xmlns:e1="http://tempuri.org/Source1.xsd" e1:att1="1" e1:att2="2"
>> e1:rest="345"/>
>>
>> If I try to create a schema for it with Visual Studio, I get the
>> error
>> "Failed to create a schema for this data file because:
>> Although this XML file is well formed, it contains structure that
>> Data
>> View cannot display.
>>
>> The 'http://tempuri.org/Source1.xsd:att1' atrribute is not declared.
>> An
>> error occurred at , (7,8)"
>>
>> However if I qualify the e1 element with e1 prefix it is happy.
>> I thought attributes namespace was independant of the element
>> namespace.
>>
>> I don't understand why I am getting this error.
>> Source1.xsd looks like this:
>>
>> <?xml version="1.0" ?>
>> <xs:schema id="NewDataSet"
>> targetNamespace="http://tempuri.org/Source1.xsd"
>> xmlns:mstns=http://tempuri.org/Source1.xsd
>> xmlns="http://tempuri.org/Source1.xsd"
>> xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
>> attributeFormDefault="qualified" elementFormDefault="qualified">
>> <xs:element name="e1">
>> <xs:complexType>
>> <xs:attribute name="att1" form="qualified" type="xs:string" />
>> <xs:attribute name="att2" form="qualified" type="xs:string" />
>> <xs:attribute name="rest" form="qualified" type="xs:string" />
>> </xs:complexType>
>> </xs:element>
>> <xs:element name="NewDataSet" msdata:IsDataSet="true"
>> msdata:Locale="en-GB" msdata:EnforceConstraints="False">
>> <xs:complexType>
>> <xs:choice maxOccurs="unbounded">
>> <xs:element ref="e1" />
>> </xs:choice>
>> </xs:complexType>
>> </xs:element>
>> </xs:schema>
>>
>> Any help much appreciated.
>>
>> Thanks
>> Martin
>>
>>
>
>

Nov 12 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.