попробуйте добавить версию, используя git+https://github.com/keboola/sapi-python-client.git@0.1.3
.
Интересный вопрос. Единственная метрика, о которой я знаю (кроме просто подсчета узлов и атрибутов, как Вы предполагаете) является чем-то позвонившим Структурированная Метрика Сложности Документа.
http://www.oreillynet.com/xml/blog/2006/05/metrics_for_xml_projects_5_str_1.html
Лучшая ссылка, которую я могу находить на нем в настоящее время (его некоторое время). Я также нашел этот небольшой инструмент, который, по-видимому, вычислит его для Вас (могут быть другие):
http://schematron.com/resources/documentcomplexitymetric.html
Кроме того, я боюсь, что мой единственный совет состоял бы в том, чтобы просто выбрать несколько метрик для отслеживания, которые кажутся разумными, и переоценивают их, чтобы определить, отклоняются ли они на самом деле с усилием, применяемым к каждому документу...
Позвольте мне запуститься путем высказывания, что оценка проекта на основе критериев как это настолько же глупо как оценивает программиста на основе того же самого. Я знаю, что существуют исследования, которые показывают, что существует четкая корреляция между количеством строк кода и nuber дефектов кода. По-моему, это - просто вопрос увеличенного масштаба.
Однако если Ваши повелители... допускают ошибку... Я подразумеваю, что управление требует, чтобы Вы для предложения чего-то вот были некоторыми относительно легкими измерениями для создания:
Ну, если Вы просто отображаете схему на структуру с точки зрения Ваших основных операций SOAP/WSDL, сообщений и типов затем, можно, вероятно, просто приравнять каждый из этих аспектов к, он - соответствующий метод, сообщение и класс.
Например... клиентская схема как таковая:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://tempuri.org"
targetNamespace="http://tempuri.org"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:element name="FirstName" type="xs:string" />
<xs:element name="LastName" type="tns:LastNameType" />
</xs:sequence>
<xs:attribute name="CustID" type="xs:positiveInteger"
use="required" />
</xs:complexType>
</xs:element>
<xs:simpleType name="LastNameType">
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
... приравнялся бы к Клиентскому классу как таковому...
public class Customer
{
public string FirstName{}
public string LastName{get;set;}
etc...
}
Таким образом, можно продолжить использовать текущие сравнительные тесты для SLOC только на относительном масштабе.
Проблема с этим состоит в том, что запись XML-схемы действительно не допускает большую вариацию в LOC, который делает запись Java или программы C#. Программист может записать класс C# миллионом различных способов, где, поскольку определение схемы намного более структурировано и только действительно допускает изменение в продолжительность операции, сообщения и имен переменной. Поэтому, если Вы просто пишете XML теперь вместо Java или C# затем, можно хотеть полагать, что метрика SLOC собирается содержать намного меньше воды затем, это привыкло для с точки зрения определения размера проекта и ошибок.