2010-03-18 4 views
2

J'ai un schéma XSD qui a 10K lignes. Il faut 5 secondes pour valider mon XML avec 500 lignes. Je reçois dynamiquement XML via POST à ​​partir du serveur externe, à chaque clic de l'utilisateur sur ma page d'accueil. La validation prend 5+ secondes, ce qui est beaucoup pour chaque clic de l'utilisateur. PHP Exemple:Validation contre 10K XSD - problème de performance

$doc = new DOMDocument(); 
$doc->load('file.xml'); //100 to 500 lines 
$doc->schemaValidate('schema.xsd'); //schema.xsd 10 000 lines 

Avez-vous une idée de comment je peux valider le XML contre le XSD plus rapide?

Répondre

0

Vous pouvez créer un sous-ensemble du XSD, qui contient uniquement les parties dont vous avez besoin pour votre site. Validez sur le schéma complet uniquement après l'envoi final.

+0

J'ai pensé à cela aussi, mais malheureusement, je ne peux pas définir un sous-ensemble. J'ai besoin de tout le régime. – user248810

+0

Peut-être que cela pourrait aider (mais seulement sur les systèmes Windows): http://objectmix.com/xml-soap/86164-validating-xml-file-against-xml-schema-using-javascript.html Mais je peux ' t des images qui pourraient être vraiment plus rapides. – nfechner

1

Quelques choses à vérifier:

  1. est le schéma d'un fichier local, ou sont-vous sur le aller chercher réseau (par exemple via http: ou d'un fichier: à un volume monté)?

  2. Pouvez-vous mettre en cache votre schéma? De nombreux moteurs de validation de schéma vous permettent de charger le schéma et de le mettre en cache, puis d'effectuer plusieurs validations sur une représentation interne.

  3. À quoi ressemble votre schéma? 5 secondes pour un schéma 10K semble assez lent.

  4. Quel validateur de schéma XML utilisez-vous?

0

Utilisez une bibliothèque XML différente et/ou exécutez votre opération à distance en arrière-plan et demandez au Web de lire la dernière mémoire cache.