XML XSD conjuntamente

11/11/2004 - 17:50 por laurentzi | Informe spam
Hola amigos, una pregunta: sabeis si existe alguna manera de incorporar
directamente el esquema XSD en un XML, en vez de tener el esquema en
archivos separados?
Me explico. Para indicar que un xml tiene un esquema, al principio del
xml se lo indicamos de esta manera:
<VFPData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="esquema.xsd">

Lo que a mi me interesa es saber si puedo incorporar directamente el
esquema en el archivo xml.

Gracias de antemano,

Laurentzi Nuño
laurentzi@e-inice.com
 

Leer las respuestas

#1 Jordi Rambla
12/11/2004 - 20:22 | Informe spam
Hola,

Al guardar un DataSet con WriteXml, .NET genera un fichero con el esquema
inline.
Algo tal como lo que adjunto abajo. Yo no le he pasado por ningún validador,
pero creo recordar que es legal desde la perspectiva de XSD/XML.
El editor XML de .VS.NET 2003 parece enterarse de los errores de
consistencia entre uno y otro.

Saludos,

Jordi Rambla
<?xml version="1.0" standalone="yes"?>

<dsShippers xmlns="http://www.tempuri.org/dsShippers.xsd">

<xs:schema id="dsShippers"
targetNamespace="http://www.tempuri.org/dsShippers.xsd"
xmlns:mstns="http://www.tempuri.org/dsShippers.xsd"
xmlns="http://www.tempuri.org/dsShippers.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
attributeFormDefault="qualified" elementFormDefault="qualified">

<xs:element name="dsShippers" msdata:IsDataSet="true" msdata:Locale="es-ES">

<xs:complexType>

<xs:choice maxOccurs="unbounded">

<xs:element name="Shippers">

<xs:complexType>

<xs:sequence>

<xs:element name="ShipperID" msdata:ReadOnly="true"
msdata:AutoIncrement="true" type="xs:int" />

<xs:element name="CompanyName" type="xs:string" />

<xs:element name="Phone" type="xs:string" minOccurs="0" />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:choice>

</xs:complexType>

<xs:unique name="Constraint1" msdata:PrimaryKey="true">

<xs:selector xpath=".//mstns:Shippers" />

<xs:field xpath="mstns:ShipperID" />

</xs:unique>

</xs:element>

</xs:schema>

<Shippers>

<ShipperID>1</ShipperID>

<CompanyName>Speedy Express</CompanyName>

<Phone>(503) 555-9831</Phone>

</Shippers>

<Shippers>

<ShipperID>2</ShipperID>

<CompanyName>United Packages</CompanyName>

<Phone>(503) 555-9731</Phone>

</Shippers>

<Shippers>

<ShipperID>3</ShipperID>

<CompanyName>Federal Shipping</CompanyName>

<Phone>(503) 555-9931</Phone>

</Shippers>

<Shippers>

<ShipperID>5</ShipperID>

<CompanyName>Mi compañía</CompanyName>

<Phone>555 6768</Phone>

</Shippers>

</dsShippers>

Preguntas similares