Showing posts with label schema. Show all posts
Showing posts with label schema. Show all posts

Saturday, February 25, 2012

"Could not find schema information ..." error in XSD annotation

When I open any annotated schema in VC# 2005 Express, I get the error:

"Could not find schema information for the attribute 'urn:schemas-microsoft-com:mapping-schema:relation'."

Am I missing a reference? MSXML4.0 and the SQL Client are installed on my workstation.

An example of one of the annotated schemas I've tried is this one, from Andrew Conrad's MSDN article "A Survey of Microsoft SQL Server 2000 XML Features":

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

xmlns:sql="urn:schemas-microsoft-com:mapping-schema">

<xsd:element name="CustomerRecord" sql:relation="Customers" >

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Contact" sql:field="ContactName"

type="xsd:string" />

... etc. All references to sql:relation, sql:field and sql:relationship produce the same error.

How do you open it?

Thanks

Michael

|||I was opening the schema in the standard editor pane and then clicking on Show Errors in one of the drop-down menus (can't remember which one that is, now). I dumped VC# 2005 Express in favor of C# in VS 2003 Enterprise, which validates the same schema with no problem. The documentation which installed with the Express edition was clearly meant for the standard VS product, anyway, and, so far, schema handling in VS 2003 appears to work as advertised.

Best Regards,

Mike|||

I think the issue may be that the VC# 2005 editor by default expects all namespaces to have schemas associated. I am forwarding this to our schema editor experts to see what's going on.

Thanks

Michael

|||

The schema for these mapping annotations was not shipped in Visual Studio 2005. If you plop the following XSD schema into your "program files\visual studio 8\xml\schema" folder then the errors will go away:

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

<xs:schema targetNamespace="urn:schemas-microsoft-com:mapping-schema"

elementFormDefault="qualified"

xmlns="urn:schemas-microsoft-com:mapping-schema"

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

<xs:attribute name="encode" type="xs:anyURI">

<xs:annotation>

<xs:documentation>

When an XML element or attribute is mapped to a SQL Server BLOB column, allows requesting a reference URI. This URI can be used later to return BLOB data.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="field" type="xs:string">

<xs:annotation>

<xs:documentation>Maps an XML item to a database column.</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="guid" type="guid">

<xs:annotation>

<xs:documentation>

Allows you to specify whether to use a GUID value generated by SQL Server or use the value provided in the updategram for that column.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="hide" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Hides the element or attribute that is specified in the schema in the resulting XML document.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="identity" type="guid">

<xs:annotation>

<xs:documentation>

Can be specified on any node that maps to an IDENTITY-type database column. The value specified for this annotation defines how the corresponding IDENTITY-type column in the database is updated.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="inverse" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Instructs the updategram logic to inverse its interpretation of the parent-child relationship that has been specified using &lt;sql:relationship&gt;

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="is-constant" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Creates an XML element that does not map to any table. The element appears in the query output.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="key-fields" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows specification of column(s) that uniquely identify the rows in a table.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="limit-field" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows limiting the values that are returned on the basis of a limiting value.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="limit-value" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows limiting the values that are returned on the basis of a limiting value.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="mapped" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Allows schema items to be excluded from the result.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="max-depth" type="xs:positiveInteger">

<xs:annotation>

<xs:documentation>

Allows you to specify depth in recursive relationships that are specified in the schema.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="overflow-field" type="xs:string">

<xs:annotation>

<xs:documentation>

Identifies the database column that contains the overflow data.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="prefix" type="xs:string">

<xs:annotation>

<xs:documentation>

Creates valid XML ID, IDREF, and IDREFS. Prepends the values of ID, IDREF, and IDREFS with a string.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="relation" type="xs:string">

<xs:annotation>

<xs:documentation>

Maps an XML item to a database table.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="relationship" type="xs:string">

<xs:annotation>

<xs:documentation>

Specifies relationships between XML elements. The parent, child, parent-key, and child-key attributes are used to establish the relationship.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="use-cdata" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Allows specifying CDATA sections to be used for certain elements in the XML document.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:simpleType name="guid">

<xs:restriction base="xs:string">

<xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"/>

</xs:restriction>

</xs:simpleType>

</xs:schema>

|||Thanks, Chris. That makes perfect sense. I saved the schema and will use it if I try VS C# Express again.

Mike|||

Fine, but where in that folder should the schema be plopped?

Should I be able to deduce the file name from the info in the schema?

Or doesn't the fle name matter?

In that case, please explain the magic that allows it to be fetched in to cure the problem under discusssion

Regards,

Al

|||Al -

I'm no longer using VC# 2005 Express, but the schema name would be mapping-schema.xsd, and I think you would save it to the folder Program Files\Microsoft Visual Studio 8\Xml\Schemas.

There's probably a way to implicitly embed a xsi:schemaLocation directive in your annotated schema, so you could put the mapping-schema in your bin\Debug folder along with the program source files, but I can't figure out what such a directive would look like.

Good luck,

Mike
|||

What should the filename be?

|||

Did you ever find out how the file should be named? I am having the same endless messages and i would like to get rid of them.

Thanks,

|||

RoseD wrote:

Did you ever find out how the file should be named? I am having the same endless messages and i would like to get rid of them.

Thanks,

No. That is still a mystery, unfortunately.

It is absolutely ridiculous.

Releasing a service-pack or at least a patch would be VERY simple; but, the creators obviously have moved on to bigger and better things-- that is, sadly, pretty common for MS these days-- they move on to a new technology before they have fixed Version 1 of a release product. They keep adding bells-and-whistles but they often miss the core features. Oh well. They still have some of the best tools; I just wish there were a little more support for products by the way of services-packs, patches, and add-ons. In fact, I am sure they could have charged a nominal fee ($20, $50, even $100) for the Express tools and then they would have had a budget for product support.

Thank you.

-- Mark Kamoski

|||I wish I could give you a definitive answer, but as I said earlier, I switched to VS 2003 and the problem went away, so I never tried the solution proposed by Chris Lovett. Did you try naming the file "mapping-schema.xsd"? The full path would then be "Program Files\Visual Studio 8\xml\schema\mapping-schema.xsd".|||

This is an actual microsoft.com forum - isn't there a microsoft support engineer that can give a definitive answer to the question, what xsd file contains the xml schema info for remoting configuration files?

"Could not find schema information ..." error in XSD annotation

When I open any annotated schema in VC# 2005 Express, I get the error:

"Could not find schema information for the attribute 'urn:schemas-microsoft-com:mapping-schema:relation'."

Am I missing a reference? MSXML4.0 and the SQL Client are installed on my workstation.

An example of one of the annotated schemas I've tried is this one, from Andrew Conrad's MSDN article "A Survey of Microsoft SQL Server 2000 XML Features":

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

xmlns:sql="urn:schemas-microsoft-com:mapping-schema">

<xsd:element name="CustomerRecord" sql:relation="Customers" >

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Contact" sql:field="ContactName"

type="xsd:string" />

... etc. All references to sql:relation, sql:field and sql:relationship produce the same error.

How do you open it?

Thanks

Michael

|||I was opening the schema in the standard editor pane and then clicking on Show Errors in one of the drop-down menus (can't remember which one that is, now). I dumped VC# 2005 Express in favor of C# in VS 2003 Enterprise, which validates the same schema with no problem. The documentation which installed with the Express edition was clearly meant for the standard VS product, anyway, and, so far, schema handling in VS 2003 appears to work as advertised.

Best Regards,

Mike
|||

I think the issue may be that the VC# 2005 editor by default expects all namespaces to have schemas associated. I am forwarding this to our schema editor experts to see what's going on.

Thanks

Michael

|||

The schema for these mapping annotations was not shipped in Visual Studio 2005. If you plop the following XSD schema into your "program files\visual studio 8\xml\schema" folder then the errors will go away:

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

<xs:schema targetNamespace="urn:schemas-microsoft-com:mapping-schema"

elementFormDefault="qualified"

xmlns="urn:schemas-microsoft-com:mapping-schema"

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

<xs:attribute name="encode" type="xs:anyURI">

<xs:annotation>

<xs:documentation>

When an XML element or attribute is mapped to a SQL Server BLOB column, allows requesting a reference URI. This URI can be used later to return BLOB data.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="field" type="xs:string">

<xs:annotation>

<xs:documentation>Maps an XML item to a database column.</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="guid" type="guid">

<xs:annotation>

<xs:documentation>

Allows you to specify whether to use a GUID value generated by SQL Server or use the value provided in the updategram for that column.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="hide" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Hides the element or attribute that is specified in the schema in the resulting XML document.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="identity" type="guid">

<xs:annotation>

<xs:documentation>

Can be specified on any node that maps to an IDENTITY-type database column. The value specified for this annotation defines how the corresponding IDENTITY-type column in the database is updated.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="inverse" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Instructs the updategram logic to inverse its interpretation of the parent-child relationship that has been specified using &lt;sql:relationship&gt;

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="is-constant" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Creates an XML element that does not map to any table. The element appears in the query output.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="key-fields" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows specification of column(s) that uniquely identify the rows in a table.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="limit-field" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows limiting the values that are returned on the basis of a limiting value.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="limit-value" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows limiting the values that are returned on the basis of a limiting value.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="mapped" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Allows schema items to be excluded from the result.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="max-depth" type="xs:positiveInteger">

<xs:annotation>

<xs:documentation>

Allows you to specify depth in recursive relationships that are specified in the schema.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="overflow-field" type="xs:string">

<xs:annotation>

<xs:documentation>

Identifies the database column that contains the overflow data.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="prefix" type="xs:string">

<xs:annotation>

<xs:documentation>

Creates valid XML ID, IDREF, and IDREFS. Prepends the values of ID, IDREF, and IDREFS with a string.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="relation" type="xs:string">

<xs:annotation>

<xs:documentation>

Maps an XML item to a database table.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="relationship" type="xs:string">

<xs:annotation>

<xs:documentation>

Specifies relationships between XML elements. The parent, child, parent-key, and child-key attributes are used to establish the relationship.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="use-cdata" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Allows specifying CDATA sections to be used for certain elements in the XML document.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:simpleType name="guid">

<xs:restriction base="xs:string">

<xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"/>

</xs:restriction>

</xs:simpleType>

</xs:schema>

|||Thanks, Chris. That makes perfect sense. I saved the schema and will use it if I try VS C# Express again.

Mike
|||

Fine, but where in that folder should the schema be plopped?

Should I be able to deduce the file name from the info in the schema?

Or doesn't the fle name matter?

In that case, please explain the magic that allows it to be fetched in to cure the problem under discusssion

Regards,

Al

|||Al -

I'm no longer using VC# 2005 Express, but the schema name would be mapping-schema.xsd, and I think you would save it to the folder Program Files\Microsoft Visual Studio 8\Xml\Schemas.

There's probably a way to implicitly embed a xsi:schemaLocation directive in your annotated schema, so you could put the mapping-schema in your bin\Debug folder along with the program source files, but I can't figure out what such a directive would look like.

Good luck,

Mike
|||

What should the filename be?

|||

Did you ever find out how the file should be named? I am having the same endless messages and i would like to get rid of them.

Thanks,

|||

RoseD wrote:

Did you ever find out how the file should be named? I am having the same endless messages and i would like to get rid of them.

Thanks,

No. That is still a mystery, unfortunately.

It is absolutely ridiculous.

Releasing a service-pack or at least a patch would be VERY simple; but, the creators obviously have moved on to bigger and better things-- that is, sadly, pretty common for MS these days-- they move on to a new technology before they have fixed Version 1 of a release product. They keep adding bells-and-whistles but they often miss the core features. Oh well. They still have some of the best tools; I just wish there were a little more support for products by the way of services-packs, patches, and add-ons. In fact, I am sure they could have charged a nominal fee ($20, $50, even $100) for the Express tools and then they would have had a budget for product support.

Thank you.

-- Mark Kamoski

|||I wish I could give you a definitive answer, but as I said earlier, I switched to VS 2003 and the problem went away, so I never tried the solution proposed by Chris Lovett. Did you try naming the file "mapping-schema.xsd"? The full path would then be "Program Files\Visual Studio 8\xml\schema\mapping-schema.xsd".|||

This is an actual microsoft.com forum - isn't there a microsoft support engineer that can give a definitive answer to the question, what xsd file contains the xml schema info for remoting configuration files?

"Could not find schema information ..." error in XSD annotation

When I open any annotated schema in VC# 2005 Express, I get the error:

"Could not find schema information for the attribute 'urn:schemas-microsoft-com:mapping-schema:relation'."

Am I missing a reference? MSXML4.0 and the SQL Client are installed on my workstation.

An example of one of the annotated schemas I've tried is this one, from Andrew Conrad's MSDN article "A Survey of Microsoft SQL Server 2000 XML Features":

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

xmlns:sql="urn:schemas-microsoft-com:mapping-schema">

<xsd:element name="CustomerRecord" sql:relation="Customers" >

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Contact" sql:field="ContactName"

type="xsd:string" />

... etc. All references to sql:relation, sql:field and sql:relationship produce the same error.

How do you open it?

Thanks

Michael

|||I was opening the schema in the standard editor pane and then clicking on Show Errors in one of the drop-down menus (can't remember which one that is, now). I dumped VC# 2005 Express in favor of C# in VS 2003 Enterprise, which validates the same schema with no problem. The documentation which installed with the Express edition was clearly meant for the standard VS product, anyway, and, so far, schema handling in VS 2003 appears to work as advertised.

Best Regards,

Mike
|||

I think the issue may be that the VC# 2005 editor by default expects all namespaces to have schemas associated. I am forwarding this to our schema editor experts to see what's going on.

Thanks

Michael

|||

The schema for these mapping annotations was not shipped in Visual Studio 2005. If you plop the following XSD schema into your "program files\visual studio 8\xml\schema" folder then the errors will go away:

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

<xs:schema targetNamespace="urn:schemas-microsoft-com:mapping-schema"

elementFormDefault="qualified"

xmlns="urn:schemas-microsoft-com:mapping-schema"

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

<xs:attribute name="encode" type="xs:anyURI">

<xs:annotation>

<xs:documentation>

When an XML element or attribute is mapped to a SQL Server BLOB column, allows requesting a reference URI. This URI can be used later to return BLOB data.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="field" type="xs:string">

<xs:annotation>

<xs:documentation>Maps an XML item to a database column.</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="guid" type="guid">

<xs:annotation>

<xs:documentation>

Allows you to specify whether to use a GUID value generated by SQL Server or use the value provided in the updategram for that column.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="hide" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Hides the element or attribute that is specified in the schema in the resulting XML document.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="identity" type="guid">

<xs:annotation>

<xs:documentation>

Can be specified on any node that maps to an IDENTITY-type database column. The value specified for this annotation defines how the corresponding IDENTITY-type column in the database is updated.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="inverse" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Instructs the updategram logic to inverse its interpretation of the parent-child relationship that has been specified using &lt;sql:relationship&gt;

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="is-constant" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Creates an XML element that does not map to any table. The element appears in the query output.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="key-fields" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows specification of column(s) that uniquely identify the rows in a table.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="limit-field" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows limiting the values that are returned on the basis of a limiting value.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="limit-value" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows limiting the values that are returned on the basis of a limiting value.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="mapped" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Allows schema items to be excluded from the result.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="max-depth" type="xs:positiveInteger">

<xs:annotation>

<xs:documentation>

Allows you to specify depth in recursive relationships that are specified in the schema.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="overflow-field" type="xs:string">

<xs:annotation>

<xs:documentation>

Identifies the database column that contains the overflow data.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="prefix" type="xs:string">

<xs:annotation>

<xs:documentation>

Creates valid XML ID, IDREF, and IDREFS. Prepends the values of ID, IDREF, and IDREFS with a string.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="relation" type="xs:string">

<xs:annotation>

<xs:documentation>

Maps an XML item to a database table.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="relationship" type="xs:string">

<xs:annotation>

<xs:documentation>

Specifies relationships between XML elements. The parent, child, parent-key, and child-key attributes are used to establish the relationship.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="use-cdata" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Allows specifying CDATA sections to be used for certain elements in the XML document.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:simpleType name="guid">

<xs:restriction base="xs:string">

<xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"/>

</xs:restriction>

</xs:simpleType>

</xs:schema>

|||Thanks, Chris. That makes perfect sense. I saved the schema and will use it if I try VS C# Express again.

Mike
|||

Fine, but where in that folder should the schema be plopped?

Should I be able to deduce the file name from the info in the schema?

Or doesn't the fle name matter?

In that case, please explain the magic that allows it to be fetched in to cure the problem under discusssion

Regards,

Al

|||Al -

I'm no longer using VC# 2005 Express, but the schema name would be mapping-schema.xsd, and I think you would save it to the folder Program Files\Microsoft Visual Studio 8\Xml\Schemas.

There's probably a way to implicitly embed a xsi:schemaLocation directive in your annotated schema, so you could put the mapping-schema in your bin\Debug folder along with the program source files, but I can't figure out what such a directive would look like.

Good luck,

Mike
|||

What should the filename be?

|||

Did you ever find out how the file should be named? I am having the same endless messages and i would like to get rid of them.

Thanks,

|||

RoseD wrote:

Did you ever find out how the file should be named? I am having the same endless messages and i would like to get rid of them.

Thanks,

No. That is still a mystery, unfortunately.

It is absolutely ridiculous.

Releasing a service-pack or at least a patch would be VERY simple; but, the creators obviously have moved on to bigger and better things-- that is, sadly, pretty common for MS these days-- they move on to a new technology before they have fixed Version 1 of a release product. They keep adding bells-and-whistles but they often miss the core features. Oh well. They still have some of the best tools; I just wish there were a little more support for products by the way of services-packs, patches, and add-ons. In fact, I am sure they could have charged a nominal fee ($20, $50, even $100) for the Express tools and then they would have had a budget for product support.

Thank you.

-- Mark Kamoski

|||I wish I could give you a definitive answer, but as I said earlier, I switched to VS 2003 and the problem went away, so I never tried the solution proposed by Chris Lovett. Did you try naming the file "mapping-schema.xsd"? The full path would then be "Program Files\Visual Studio 8\xml\schema\mapping-schema.xsd".|||

This is an actual microsoft.com forum - isn't there a microsoft support engineer that can give a definitive answer to the question, what xsd file contains the xml schema info for remoting configuration files?

"Could not find schema information ..." error in XSD annotation

When I open any annotated schema in VC# 2005 Express, I get the error:

"Could not find schema information for the attribute 'urn:schemas-microsoft-com:mapping-schema:relation'."

Am I missing a reference? MSXML4.0 and the SQL Client are installed on my workstation.

An example of one of the annotated schemas I've tried is this one, from Andrew Conrad's MSDN article "A Survey of Microsoft SQL Server 2000 XML Features":

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

xmlns:sql="urn:schemas-microsoft-com:mapping-schema">

<xsd:element name="CustomerRecord" sql:relation="Customers" >

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Contact" sql:field="ContactName"

type="xsd:string" />

... etc. All references to sql:relation, sql:field and sql:relationship produce the same error.

How do you open it?

Thanks

Michael

|||I was opening the schema in the standard editor pane and then clicking on Show Errors in one of the drop-down menus (can't remember which one that is, now). I dumped VC# 2005 Express in favor of C# in VS 2003 Enterprise, which validates the same schema with no problem. The documentation which installed with the Express edition was clearly meant for the standard VS product, anyway, and, so far, schema handling in VS 2003 appears to work as advertised.

Best Regards,

Mike|||

I think the issue may be that the VC# 2005 editor by default expects all namespaces to have schemas associated. I am forwarding this to our schema editor experts to see what's going on.

Thanks

Michael

|||

The schema for these mapping annotations was not shipped in Visual Studio 2005. If you plop the following XSD schema into your "program files\visual studio 8\xml\schema" folder then the errors will go away:

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

<xs:schema targetNamespace="urn:schemas-microsoft-com:mapping-schema"

elementFormDefault="qualified"

xmlns="urn:schemas-microsoft-com:mapping-schema"

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

<xs:attribute name="encode" type="xs:anyURI">

<xs:annotation>

<xs:documentation>

When an XML element or attribute is mapped to a SQL Server BLOB column, allows requesting a reference URI. This URI can be used later to return BLOB data.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="field" type="xs:string">

<xs:annotation>

<xs:documentation>Maps an XML item to a database column.</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="guid" type="guid">

<xs:annotation>

<xs:documentation>

Allows you to specify whether to use a GUID value generated by SQL Server or use the value provided in the updategram for that column.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="hide" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Hides the element or attribute that is specified in the schema in the resulting XML document.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="identity" type="guid">

<xs:annotation>

<xs:documentation>

Can be specified on any node that maps to an IDENTITY-type database column. The value specified for this annotation defines how the corresponding IDENTITY-type column in the database is updated.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="inverse" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Instructs the updategram logic to inverse its interpretation of the parent-child relationship that has been specified using &lt;sql:relationship&gt;

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="is-constant" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Creates an XML element that does not map to any table. The element appears in the query output.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="key-fields" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows specification of column(s) that uniquely identify the rows in a table.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="limit-field" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows limiting the values that are returned on the basis of a limiting value.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="limit-value" type="xs:string">

<xs:annotation>

<xs:documentation>

Allows limiting the values that are returned on the basis of a limiting value.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="mapped" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Allows schema items to be excluded from the result.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="max-depth" type="xs:positiveInteger">

<xs:annotation>

<xs:documentation>

Allows you to specify depth in recursive relationships that are specified in the schema.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="overflow-field" type="xs:string">

<xs:annotation>

<xs:documentation>

Identifies the database column that contains the overflow data.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="prefix" type="xs:string">

<xs:annotation>

<xs:documentation>

Creates valid XML ID, IDREF, and IDREFS. Prepends the values of ID, IDREF, and IDREFS with a string.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="relation" type="xs:string">

<xs:annotation>

<xs:documentation>

Maps an XML item to a database table.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="relationship" type="xs:string">

<xs:annotation>

<xs:documentation>

Specifies relationships between XML elements. The parent, child, parent-key, and child-key attributes are used to establish the relationship.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:attribute name="use-cdata" type="xs:boolean">

<xs:annotation>

<xs:documentation>

Allows specifying CDATA sections to be used for certain elements in the XML document.

</xs:documentation>

</xs:annotation>

</xs:attribute>

<xs:simpleType name="guid">

<xs:restriction base="xs:string">

<xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"/>

</xs:restriction>

</xs:simpleType>

</xs:schema>

|||Thanks, Chris. That makes perfect sense. I saved the schema and will use it if I try VS C# Express again.

Mike|||

Fine, but where in that folder should the schema be plopped?

Should I be able to deduce the file name from the info in the schema?

Or doesn't the fle name matter?

In that case, please explain the magic that allows it to be fetched in to cure the problem under discusssion

Regards,

Al

|||Al -

I'm no longer using VC# 2005 Express, but the schema name would be mapping-schema.xsd, and I think you would save it to the folder Program Files\Microsoft Visual Studio 8\Xml\Schemas.

There's probably a way to implicitly embed a xsi:schemaLocation directive in your annotated schema, so you could put the mapping-schema in your bin\Debug folder along with the program source files, but I can't figure out what such a directive would look like.

Good luck,

Mike
|||

What should the filename be?

|||

Did you ever find out how the file should be named? I am having the same endless messages and i would like to get rid of them.

Thanks,

|||

RoseD wrote:

Did you ever find out how the file should be named? I am having the same endless messages and i would like to get rid of them.

Thanks,

No. That is still a mystery, unfortunately.

It is absolutely ridiculous.

Releasing a service-pack or at least a patch would be VERY simple; but, the creators obviously have moved on to bigger and better things-- that is, sadly, pretty common for MS these days-- they move on to a new technology before they have fixed Version 1 of a release product. They keep adding bells-and-whistles but they often miss the core features. Oh well. They still have some of the best tools; I just wish there were a little more support for products by the way of services-packs, patches, and add-ons. In fact, I am sure they could have charged a nominal fee ($20, $50, even $100) for the Express tools and then they would have had a budget for product support.

Thank you.

-- Mark Kamoski

|||I wish I could give you a definitive answer, but as I said earlier, I switched to VS 2003 and the problem went away, so I never tried the solution proposed by Chris Lovett. Did you try naming the file "mapping-schema.xsd"? The full path would then be "Program Files\Visual Studio 8\xml\schema\mapping-schema.xsd".

Friday, February 24, 2012

"Best Practices" for UDM on OLTP?

Are there particular things you should do when putting the UDM on top of an OLTP schema? I've been trying to do this, but can't get the cube or dimensions to build. Just wondering if I'm missing something or if this "feature" really exists.

This is very open question. You should try and look for some book or training about data warehousing and OLAP.

Here is some information for you: http://www.kimballgroup.com/html/books.html

Edward.
--
This posting is provided "AS IS" with no warranties, and confers no rights.

|||

Sorry, let me clarify. I'm pretty well versed with dimensional modeling. However, I'm specifically looking for information on using the SSAS 2005 UDM on top of an OLTP schema. For instance, what are the "gotcha's" and how far away can you get from the dimensional model with the UDM. Do you need to use the dimensional model, at the core of the UDM, then embellish your schema with OLTP tables? I guess I'm saying that a lot has been promised about bypassing ETL with the UDM and I'd like to know how much of that is really true. Again, I've tried to build a cube with the UDM directly sourcing from an OLTP schema, but I couldn't get anything to work. I'm currently researching the OLTP schema, since it's a dev schema and not a prod schema, so that might be the problem. I just want to make sure there aren't any other issues I should be aware of.

|||

In version 2005 Analysis Services greatly improved the ability for you to build multidimensional models, or unified dimensional models on top of variety relational schemas, OLTP included. Analysis Services allow for great modeling flexibility.

If the question is how easiy it is to map OLTP schema into multidimensional model, the answer is it: depends. It very much depends on the way OLTP schema is stuctured. It very much depends on how much of the relational schema you would like to see in UDM.

Also depends on how clean the data in OLTP is. If you allow for inconsistencies or your legacy system. If your OLTP system has been through several interations of tweaks and upgrades, you will need to have an ETL process to clean it up. In some cases there is no way around it.

In short, AS2005 is very flexible and poweful, but with flexibility comes the danger of creating wrong design. Try and use Analysis Services to create a simple UDM's first. Take a look at the best practices. Test your UDM see if you getting the right answers...

Hope that helps:

Edward.
--
This posting is provided "AS IS" with no warranties, and confers no rights.

|||Where can I find ANY tutorial on using UDM methodology - Against AdventureWorks or other?

"Best Practices" for UDM on OLTP?

Are there particular things you should do when putting the UDM on top of an OLTP schema? I've been trying to do this, but can't get the cube or dimensions to build. Just wondering if I'm missing something or if this "feature" really exists.

This is very open question. You should try and look for some book or training about data warehousing and OLAP.

Here is some information for you: http://www.kimballgroup.com/html/books.html

Edward.
--
This posting is provided "AS IS" with no warranties, and confers no rights.

|||

Sorry, let me clarify. I'm pretty well versed with dimensional modeling. However, I'm specifically looking for information on using the SSAS 2005 UDM on top of an OLTP schema. For instance, what are the "gotcha's" and how far away can you get from the dimensional model with the UDM. Do you need to use the dimensional model, at the core of the UDM, then embellish your schema with OLTP tables? I guess I'm saying that a lot has been promised about bypassing ETL with the UDM and I'd like to know how much of that is really true. Again, I've tried to build a cube with the UDM directly sourcing from an OLTP schema, but I couldn't get anything to work. I'm currently researching the OLTP schema, since it's a dev schema and not a prod schema, so that might be the problem. I just want to make sure there aren't any other issues I should be aware of.

|||

In version 2005 Analysis Services greatly improved the ability for you to build multidimensional models, or unified dimensional models on top of variety relational schemas, OLTP included. Analysis Services allow for great modeling flexibility.

If the question is how easiy it is to map OLTP schema into multidimensional model, the answer is it: depends. It very much depends on the way OLTP schema is stuctured. It very much depends on how much of the relational schema you would like to see in UDM.

Also depends on how clean the data in OLTP is. If you allow for inconsistencies or your legacy system. If your OLTP system has been through several interations of tweaks and upgrades, you will need to have an ETL process to clean it up. In some cases there is no way around it.

In short, AS2005 is very flexible and poweful, but with flexibility comes the danger of creating wrong design. Try and use Analysis Services to create a simple UDM's first. Take a look at the best practices. Test your UDM see if you getting the right answers...

Hope that helps:

Edward.
--
This posting is provided "AS IS" with no warranties, and confers no rights.

|||Where can I find ANY tutorial on using UDM methodology - Against AdventureWorks or other?

Thursday, February 16, 2012

<annotation> element not retained in schema collection! Why?

The <annotation> element is not retained in the schema collection.

Why?

I was counting on this to use the <appinfo> element to help customize my system.

The intent was to use the schema to store information on how my system would process customized data. There are other solutions but this makes the most sense. Storing processing information with the data structure definition.

This is such a simple element and part of the standard why wasn't it included?

Thanks

Bill

Dear Bill

The XML Schema collection is a collection of the schema validation relevant information in the database meta data. That information gets shredded into some internal data structures and is not kept in its orginial form. As a consequence, annotations etc are being thrown away. We currently recommend to store the schemas in an XML data type column if you really want to preserve that information.

We are looking into whether we will provide such information in the next release.

Thanks

Michael

|||Thanks for the explanation and quick response