是否有方法使用XSD文件僅驗證XML文件的一部分並忽略XML文件的其他內容。我想僅使用XSD文件驗證XML文件中的幾個標籤。我的XML文件包含許多標籤,但xsd僅包含少數標籤的元素。使用XSD文件僅驗證XML文件的一部分
以某種方式可以達到這個目的嗎?
是否有方法使用XSD文件僅驗證XML文件的一部分並忽略XML文件的其他內容。我想僅使用XSD文件驗證XML文件中的幾個標籤。我的XML文件包含許多標籤,但xsd僅包含少數標籤的元素。使用XSD文件僅驗證XML文件的一部分
以某種方式可以達到這個目的嗎?
原則上有兩種方式(至少)可以實現這一點。
首先,你原則上可以告訴驗證者你要驗證文檔中的哪些元素; XSD規範不要求驗證以文檔根目錄開始。實際上,命令行驗證程序幾乎從不提供運行時選項,以便在除根之外的任何位置啓動驗證。我認爲驗證庫更可能提供該功能;他們經常(或者至少有時)提供函數來允許你傳遞驗證應該開始的元素以及必要的模式信息。
如果您的驗證器不允許您選擇性地進行驗證,那麼您可以編寫一個模式,其中包含要驗證的那些元素和屬性的聲明,並在「寬鬆驗證模式」下調用文檔根驗證器 - - 這意味着,基本上是「如果您在模式中發現文檔中某個元素的聲明,則根據其聲明驗證元素,否則接受它(假設它在其父項聲明中與鬆散的通配符匹配)並繼續。 「驗證程序將因此忽略不提供聲明的元素,並驗證您提供聲明的元素。 (請注意,不需要符合規定的XSD處理器來提供寬鬆驗證模式,規範中寬鬆驗證的定義略有不足,但我相信大多數可用的處理器都支持它,並在鬆散模式下執行相同的操作。)
你好,我仍然堅持這個問題。還沒有找到解決方案。以下是我需要驗證的xml部分: - '
一個醜陋的黑客將構建一個「validatable」文件從主要通過省略你不想驗證,並驗證那一個。我不贊同這種方法,但至少是一個答案。
在實踐中實現這個最簡單的方法可能是使用XQuery中的驗證表達式(或XSLT中的驗證副本)進行驗證。這使您可以選擇要驗證的元素,並一次執行驗證。
如果文檔無效,XQuery中的驗證可能會被定義爲致命錯誤,因此實現可能會停止在第一個錯誤上,而不是集中於向您提供儘可能多的無效信息。在這個階段,您需要了解它在特定處理器中的實現方式和/或如何配置該處理器。
對於某些情況,您可以在XSD中使用' ':http://www.w3schools.com/xml/schema_complex_any。 asp –
nuoritoveri