Compartir a través de


Especificar valores predeterminados para atributos en el esquema XDR (esquema XDR)

Nota importanteImportante

Este tema se incluye como referencia para las aplicaciones heredadas. No se llevará a cabo ningún trabajo de desarrollo de esta característica en el futuro. Evite utilizarla en nuevos trabajos de desarrollo. En su lugar, use esquemas XSD anotados para crear vistas XML. Para obtener más información, vea Introducción a los esquemas XSD anotados (SQLXML 4.0). Puede convertir los esquemas XDR anotados existentes en esquemas XSD. Para obtener más información, vea Convertir esquemas XDR anotados en esquemas XSD equivalentes (SQLXML 4.0).

En una base de datos, se pueden asignar valores predeterminados a las columnas. De la misma forma, en un esquema XDR, se pueden establecer valores predeterminados para los atributos (en el esquema XDR no se pueden asignar valores predeterminados a los elementos). El esquema XDR permite la especificación del atributo default en <AttributeType>.

Si un valor de columna asociado a un atributo es NULL, este atributo no se devuelve en esta instancia del elemento. Sin embargo, si se especifica el atributo default en <AttributeType>, el atributo se devuelve con el valor predeterminado especificado.

Por ejemplo, al extraer datos de la base de datos a un documento XML, si falta uno de los valores de atributo, se utiliza un valor predeterminado de ese atributo en el esquema XDR.

[!NOTA]

Es posible que los valores predeterminados no aparezcan en el documento que se devuelve; también puede utilizarlos el analizador de validación cuando falta el atributo.

[!NOTA]

Si el analizador que se emplea detecta el esquema, se utiliza el valor predeterminado. Es decir, para el analizador MSXML, debe asegurarse de que el marcador resolveExternals se establece en TRUE (el valor predeterminado) y así el analizador capturará los esquemas. Una vez analizadas, las instancias individuales incluyen los atributos (para los que se especifica un valor predeterminado), independientemente de si el atributo estaba incluido en el documento XML. DOM proporciona el valor predeterminado.

Ejemplos

Para crear muestras funcionales mediante los ejemplos siguientes, debe cumplir determinados requisitos. Para obtener más información, vea Requisitos para ejecutar los ejemplos de SQLXML.

A. Especificar el valor predeterminado de un atributo en el esquema XDR

En este ejemplo, se asigna un valor predeterminado "XYZ" al atributo Title. Cuando se recuperan los registros de contacto, se asigna un valor predeterminado a los contactos que no tienen un cargo.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">

<ElementType name="Person.Contact" >
    <AttributeType name="CID" />
    <AttributeType name="FirstName" />
    <AttributeType name="LastName" />
    <AttributeType name="Title" default="XYZ"/>

    <attribute type="CID" sql:field="ContactID" />
    <attribute type="FirstName" />
    <attribute type="LastName" />
    <attribute type="Title"  />
</ElementType>
</Schema>

Para probar una consulta XPath de ejemplo en el esquema

  1. Copie el código de esquema anterior y péguelo en un archivo de texto. Guarde el archivo como DefaultValueXdr.xml.

  2. Copie la plantilla siguiente y péguela en un archivo de texto. Guarde el archivo como DefaultValueXdrT.xml en el mismo directorio donde guardó DefaultValueXdr.xml.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="DefaultValueXdr.xml">
        /Person.Contact[@CID &gt; 1000 and @CID &lt; 1006]
      </sql:xpath-query>
    </ROOT>
    

    La ruta de acceso al directorio especificada para el esquema de asignación (DefaultValueXdr.xml) es relativa al directorio donde se guarda la plantilla. También puede especificarse una ruta de acceso absoluta como, por ejemplo:

    mapping-schema="C:\MyDir\DefaultValueXdr.xml"
    
  3. Cree y use el script de prueba de SQLXML 4.0 (Sqlxml4test.vbs) para ejecutar la plantilla.

    Para obtener más información, vea Utilizar ADO para ejecutar consultas SQLXML 4.0.

El conjunto de resultados es:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Person.Contact CID="1001" FirstName="Terri" LastName="Duffy" /> 
  <Person.Contact CID="1002" FirstName="Roberto" LastName="Tamburello" /> 
  <Person.Contact CID="1003" FirstName="Michael" LastName="Sullivan" /> 
  <Person.Contact CID="1004" FirstName="Sharon" LastName="Salavaria" /> 
  <Person.Contact CID="1005" FirstName="Gail" LastName="Erickson" Title="Ms." /> 
</ROOT>

Vea también

Referencia