dedzep
Messages postés54Date d'inscriptionvendredi 1 février 2002StatutMembreDernière intervention 8 février 2007
-
20 déc. 2006 à 15:43
dedzep
Messages postés54Date d'inscriptionvendredi 1 février 2002StatutMembreDernière intervention 8 février 2007
-
30 janv. 2007 à 11:09
j'ai créé une base sql server 2005 contenant des articles
ces articles contiennent des objets tres different (une voiture, un cheval, un ordi, un voyage)
les caracteristiques de ces articles sont donc tres differents
je vais les stocker dans un champs xml
pour cela j'ai créé autant de schema xml que de caracteristiques
je veux donc lorsque je lis un article et que je sais que c'est un micro-onde, lire le champs xml avec le bon format (celui du schema "micro-ondes")
suivant les recommandant Microsoft j'ai créé et stocké mes schemas dans sql server 2005 dans le dossier suivant :
MaBase > Programmability > Types > XML schema Collection
ceci par la fonction
/****** Object: XmlSchemaCollection [dbo].[SchemaXMLMicro-ondes] Script Date: 10/20/2006 14:14:04 ******/
CREATE XML SCHEMA COLLECTION [dbo].[SchemaXMLMicro-ondes] AS N' ect...
comme cela mes schemas sont sauvegardés avec ma base
Mon probleme est le suivant :
lorsque je lis dans VS2005 ASP.VB un enregistrement de ma table il faut que je recupere le schema associé à mon champs xml.
Dans ma page aspx je lis mon enregistrement et je sais que c'est un four micro-ondes par exemple.
De là il faut que je crée un bloc affichant les caracteristiques de mon produit se trouvant dans le champs XML de l'enregistrement.
C'est la que je bloque !
si le schema est dans un fichier sur mon site, je sais faire : (par exemple en vb)
Private Const document As String = "..\books.xml"
Private Const xsdDocument As String = "..\books.xsd"
Dim schemaInfo As New XmlSchemaInfo()
Dim serializer As XmlSerializer = Nothing
Dim myBooks As Books = Nothing
Using reader As StreamReader = New StreamReader(document)
serializer = New XmlSerializer(GetType(Books))
myBooks = CType(serializer.Deserialize(reader), Books)
End Using
Dim xsv As XmlSchemaValidator = CreateValidator()
xsv.Initialize()
dedzep
Messages postés54Date d'inscriptionvendredi 1 février 2002StatutMembreDernière intervention 8 février 2007 30 janv. 2007 à 11:09
mon schema n'est pas un fichier xsd mais un champs que je recupere sur sql server via cette requette
SELECT XML_SCHEMA_NAMESPACE(sch.name, xsd.name)
FROM sys.xml_schema_collections AS xsd
JOIN sys.schemas AS sch ON xsd.schema_id = sch.schema_id
WHERE xsd.name = 'SchemaXML_4x4'
maintenant (et juste pour rire) je suis incapable de recuperer le contenu de ce flux.
plus exactement je ne recupere que les intitulés de niveau 1
(remplacer les "*" pas le symbole "plusGrandQue" ou "PlusPetitQue")