2010-10-18 4 views
0

Мне было поручено написать xsd для формата XML-файла, созданного моей компанией.Имена тегов XML-переменных

К сожалению, один из тегов содержит две переменные, вот пример тега

<to_1.1.1.0_24> 

1.1.1.0 это IP-адрес, и как таковой может измениться, и 24 является маска подсети. Есть ли способ выразить это в документе xsd.

Большое спасибо

Дэвид

+0

Похоже, что оригинальному дизайнеру этого XML не понравилась многословность XML, и он попытался стать умным. Большая ошибка. Будет больно иметь дело с этим XML в остальной части XML-экосистемы, так как теперь вы пытаетесь написать XSD для него. –

+0

Теперь я вижу большие трудности с написанием XSD, который, я думаю, я задержу, пока не смогу реорганизовать эту область кода. – Mumbles

ответ

3

No.

Тег сам не должен содержать переменные данные. Это должно быть разделено на атрибуты или элементы. Например:

<to ip="1.1.1.0" netmask="24" /> 

или:

<to> 
    <ip>1.1.1.0</ip> 
    <netmask>24</netmask> 
</to> 
+0

Спасибо, я надеялся, что это не так. Это то, что я подозревал как расшифровка xml, довольно сложно. К сожалению, я не проектировал эту часть программного обеспечения или XML-структуры. – Mumbles

0

No. И вообще это очень плохая форма для документа XML, как это делает разбор он значительно менее очевидно, чем это должно быть. На самом деле это должно быть что-то вроде

<to network="1.1.1.0" netmask-bit="24">...</to> 

или что-то подобное

1

Используйте xsd:any элемент. Это подтвердит этот элемент.

Однако это не приведет к отказу от подтверждения чего-либо еще, но это тот вид компромисса, который вы должны сделать, когда ломаете подобные вещи в XML.

Смежные вопросы