VS.Net 2003 can generate xsds when no namespaces are used in the sample xml,
"Stan Kitsis" <skitsis@umich.edu> wrote in message
news:ok4hv0pbosh34vc108aplm2ja8jtoh9pc4@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]" <skits@microsoft.com> wrote in message
>>news:41f55017$1@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:u705xI5$EHA.1396@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]" <skits@microsoft.com> wrote in message
>>>> news:41f03bec$1@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:usLpCPz$EHA.612@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"